উত্তর:
পার্টিতে দেরীতে, তবে নোড-উইন্ডোজও কৌশলটি করবে।
এটিতে সিস্টেম লগ ইন অন্তর্নির্মিত রয়েছে।
কোড থেকে স্ক্রিপ্ট তৈরির জন্য একটি এপিআই রয়েছে, যেমন
var Service = require('node-windows').Service;
// Create a new service object
var svc = new Service({
name:'Hello World',
description: 'The nodejs.org example web server.',
script: 'C:\\path\\to\\helloworld.js'
});
// Listen for the "install" event, which indicates the
// process is available as a service.
svc.on('install',function(){
svc.start();
});
svc.install();
এফডি: আমি এই মডিউলটির লেখক।
আমি জিনিসটি এতটাই দরকারী বলে খুঁজে পেয়েছি যে এর চারপাশে মোড়ক ব্যবহারের জন্য আমি আরও সহজতর তৈরি করেছি ( এনপিএম , গিথুব )।
এটি ইনস্টল করা হচ্ছে:
npm install -g qckwinsvc
আপনার পরিষেবা ইনস্টল করা:
qckwinsvc
prompt: Service name: [name for your service]
prompt: Service description: [description for it]
prompt: Node script path: [path of your node script]
Service installed
আপনার পরিষেবা আনইনস্টল করা হচ্ছে:
qckwinsvc --uninstall
prompt: Service name: [name of your service]
prompt: Node script path: [path of your node script]
Service stopped
Service uninstalled
উইনসর জনপ্রিয় এনএসএসএম (নন-চিকিত্সা পরিষেবা ব্যবস্থাপক) এর চারপাশে একটি নোড.জেএস বান্ধব মোড়ক
পরবর্তী, আমি নোডকে আইআইএসের মতো একটি পরিষেবা হিসাবে হোস্ট করতে চেয়েছিলাম। এইভাবে এটি আমার মেশিনটি দিয়ে শুরু হবে, পটভূমিতে চালানো হবে, ক্রাশ হয়ে গেলে যদি স্বয়ংক্রিয়ভাবে পুনরায় চালু হয় এবং আরও কিছুক্ষণ আগে।
এই জায়গায় নাস - চিকিত্সা পরিষেবা ব্যবস্থাপক, এনএসএম ছবিতে প্রবেশ করে। এই সরঞ্জামটি আপনাকে উইন্ডোজ পরিষেবা হিসাবে একটি সাধারণ .exe হোস্ট করতে দেয়।
আপনার নোড অ্যাপ্লিকেশনটির একটি পরিষেবাটি হিসাবে সেটআপ করতে আমি যে কমান্ডগুলি ব্যবহার করেছি সেগুলি এখানে প্রশাসকের মতো আপনার সিএমডি খুলুন এবং নিম্নলিখিত আদেশগুলি টাইপ করুন:
nssm.exe install service_name c:\your_nodejs_directory\node.exe c:\your_application_directory\server.js net start service_name
আমি সরাসরি প্রশ্নের সমাধান করছি না, তবে এমন একটি বিকল্প সরবরাহ করছি যা আপনার প্রয়োজন আরও নোড.জেএস ফ্যাশন উপায়ে পূরণ করতে পারে।
কার্যকরীভাবে প্রয়োজনীয়তাগুলি হ'ল:
এই প্রয়োজনীয়তাগুলি একটি প্রসেস ম্যানেজার (প্রধানমন্ত্রী) ব্যবহার করে এবং প্রসেস ম্যানেজারকে সিস্টেম স্টার্টআপে শুরু করার মাধ্যমে সন্তুষ্ট হতে পারে। উইন্ডোজ বান্ধব দুটি ভাল প্রধানমন্ত্রী হ'ল:
প্রধানমন্ত্রীকে স্বয়ংক্রিয়ভাবে শুরু করতে, সবচেয়ে সহজ উপায় হল "এট স্টার্টআপ" ট্রিগার দিয়ে একটি নির্ধারিত টাস্ক তৈরি করা:
pm2
স্টার্টআপে একটি ব্যাচ স্ক্রিপ্ট ব্যবহার শুরু করার চেষ্টা করেন, পরিবেশের ভেরিয়েবলগুলি অন্তর্ভুক্ত করার বিষয়ে নিশ্চিত হন বা এটি কার্যকর হবে না। এখানে আলোচনা করা হয়েছে: github.com/Unitech/pm2/issues/1079
প্রক্রিয়া পরিচালক + + কাজের সূচি পদ্ধতির আমি পোস্ট এক বছর আগে কেউ বন্ধ সেবা ইনস্টলেশনের সঙ্গে ভাল কাজ করে। তবে সম্প্রতি আমি আইপিসির মাধ্যমে একে অপরের সাথে কথা বলে অনেক ছোট পরিষেবা দিয়ে একটি মাইক্রো-পরিষেবা ফ্যাশনে সিস্টেম ডিজাইন করা শুরু করেছি। সুতরাং প্রতিটি পরিষেবা ম্যানুয়ালি কনফিগার করা অসহনীয় হয়ে উঠেছে।
ম্যানুয়াল কনফিগারেশন ছাড়াই পরিষেবাগুলি ইনস্টল করার লক্ষ্যে, আমি সার্মান তৈরি করেছি , একটি আদেশ npm i -g serman
হিসাবে এক্সিকিউটেবলকে ইনস্টল করার জন্য একটি কমান্ড লাইন সরঞ্জাম (এর সাথে ইনস্টল ) করুন। আপনাকে যা লিখতে হবে (এবং কেবল একবার লিখতে হবে) এটি কার্যকর করার সাথে সাথে একটি সাধারণ সার্ভিস কনফিগারেশন ফাইল। চালান
serman install <path_to_config_file>
পরিষেবা ইনস্টল করা হবে। stdout
এবং stderr
সব লগড হয়। আরও তথ্যের জন্য, প্রকল্পের ওয়েবসাইটটি একবার দেখুন ।
একটি ওয়ার্কিং কনফিগারেশন ফাইল খুব সহজ, যা নীচে প্রদর্শিত হয়েছে। তবে এর অনেকগুলি দরকারী বৈশিষ্ট্য রয়েছে যেমন নীচে <env>
এবং <persistent_env>
নীচে।
<service>
<id>hello</id>
<name>hello</name>
<description>This service runs the hello application</description>
<executable>node.exe</executable>
<!--
{{dir}} will be expanded to the containing directory of your
config file, which is normally where your executable locates
-->
<arguments>"{{dir}}\hello.js"</arguments>
<logmode>rotate</logmode>
<!-- OPTIONAL FEATURE:
NODE_ENV=production will be an environment variable
available to your application, but not visible outside
of your application
-->
<env name="NODE_ENV" value="production"/>
<!-- OPTIONAL FEATURE:
FOO_SERVICE_PORT=8989 will be persisted as an environment
variable machine-wide.
-->
<persistent_env name="FOO_SERVICE_PORT" value="8989" />
</service>