क्या कोई नोड। जेएस विशेषज्ञ मुझे बता सकते हैं कि मैं अपने मशीन बूट के दौरान एक सर्वर को ऑटोस्टार्ट करने के लिए नोड जेएस को कैसे कॉन्फ़िगर कर सकता हूं? मैं विंडोज पर हूँ
क्या कोई नोड। जेएस विशेषज्ञ मुझे बता सकते हैं कि मैं अपने मशीन बूट के दौरान एक सर्वर को ऑटोस्टार्ट करने के लिए नोड जेएस को कैसे कॉन्फ़िगर कर सकता हूं? मैं विंडोज पर हूँ
जवाबों:
यह नोड.जेएस में कॉन्फ़िगर करने के लिए कुछ नहीं है, यह विशुद्ध रूप से ओएस जिम्मेदारी है (आपके मामले में विंडोज)। इसे प्राप्त करने का सबसे विश्वसनीय तरीका विंडोज सर्विस है।
यह सुपर आसान मॉड्यूल है जो एक नोड स्क्रिप्ट को विंडोज़ सेवा के रूप में स्थापित करता है, इसे नोड-विंडोज़ ( एनपीएम , जीथब , प्रलेखन ) कहा जाता है। मैंने पहले इस्तेमाल किया है और एक आकर्षण की तरह काम किया है।
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 , github ) का उपयोग करना और भी आसान बना दिया ।
इसे स्थापित करना:
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
npm install qckwinsvc -g
यदि आप लिनक्स का उपयोग कर रहे हैं, तो macOS या Windows pm2 आपका मित्र है। यह एक प्रक्रिया प्रबंधक है जो क्लस्टर को बहुत अच्छी तरह से संभालता है।
आप इसे स्थापित करें:
npm install -g pm2
उदाहरण के लिए, 3 प्रक्रियाओं का एक समूह शुरू करें:
pm2 start app.js -i 3
और pm2 उन्हें बूट पर शुरू करता है:
pm2 startup
इसमें एक एपीआई, एक मॉनिटर इंटरफ़ेस भी है :
गिटहब पर जाएं और निर्देश पढ़ें । यह प्रयोग करने में आसान और बहुत आसान है। हमेशा के लिए सबसे अच्छी बात है ।
pm2 startup
इस प्लेटफॉर्म के मापदंडों में से एक की जरूरत है: <ubuntu|centos|gentoo|systemd>
यानी:
$ pm2 startup # auto-detect platform
$ pm2 startup [platform] # render startup-script for a specific platform, the [platform] could be one of: # ubuntu|centos|redhat|gentoo|systemd|darwin|amazon
अगर मैं गलत नहीं हूं, तो आप कमांड लाइन का उपयोग करके अपना आवेदन शुरू कर सकते हैं और इस प्रकार एक बैच फ़ाइल का उपयोग कर सकते हैं। उस स्थिति में इसे विंडोज लॉगिन से शुरू करना बहुत कठिन काम नहीं है।
आप निम्नलिखित सामग्री के साथ एक बैच फ़ाइल बनाएँ:
node C:\myapp.js
और इसे .bat extention के साथ सहेजें। यहाँ myapp.js आपका ऐप है, जो इस उदाहरण में C: ड्राइव में स्थित है (पथ को देखें)।
अब आप बस अपने स्टार्टअप फोल्डर में बैच फाइल को फेंक सकते हैं जो C: \ Users \% उपयोगकर्ता नाम% \ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ Startup पर स्थित है।
बस रनडेल बॉक्स में% appdata% का उपयोग करके इसे खोलें और> रोमिंग> माइक्रोसॉफ्ट> विंडोज> स्टार्ट मेनू> स्टार्ट> अप का पता लगाएं
बैच फ़ाइल को लॉगिन समय पर निष्पादित किया जाएगा और cmd से अपना नोड एप्लिकेशन शुरू करेगा।
यह आसानी से विंडोज टास्क शेड्यूलर के साथ मैन्युअल रूप से किया जा सकता है।
फिर, एक बैच फ़ाइल बनाएं जिसमें निम्नलिखित शामिल हैं:
cd C:\path\to\project\root
call C:\Users\Username\AppData\Roaming\npm\forever.cmd start server.js
exit 0
अंत में, जब आप लॉग ऑन करते हैं तो एक निर्धारित कार्य बनाएं। इस कार्य को बैच फ़ाइल को कॉल करना चाहिए।
मैं आपको Windows सेवा के रूप में अपना नोड.जेएस ऐप इंस्टॉल करने की सलाह दूंगा, और फिर स्टार्टअप पर चलाने के लिए सेवा सेट करूंगा। स्टार्टअप फ़ोल्डर में बैच फ़ाइलों को जोड़ने या हटाने के बजाय विंडोज सर्विसेज स्नैपइन का उपयोग करके स्टार्टअप कार्रवाई को नियंत्रित करना थोड़ा आसान बनाना चाहिए।
Stackoverflow में एक और सेवा-संबंधी प्रश्न ने (कुछ) वास्तव में अच्छे विकल्प प्रदान किए। की जाँच करें के रूप में एक Windows सेवा Node.js स्थापित करने के लिए । नोड-विंडोज वास्तव में मुझे आशाजनक लगता है। एक तरफ के रूप में, मैंने जावा ऐप के लिए समान उपकरणों का उपयोग किया था जिन्हें सेवाओं के रूप में चलाने की आवश्यकता थी। इसने मेरे जीवन को पूरी तरह से आसान बना दिया है। उम्मीद है की यह मदद करेगा।
विंडोज़ पर अपनी नोडज प्रक्रियाओं को शुरू करने और चलाने के लिए pm2 का उपयोग करें ।
शाम 2 शुरू करने के लिए कार्य शेड्यूलर सेट करने के तरीके के बारे में इस गीथूब चर्चा को पढ़ना सुनिश्चित करें: https://github.com/Unitech/pm2/issues/1079
यहाँ एक और समाधान है जो मैंने सी # में ऑटो स्टार्टअप देशी नोड सर्वर या विंडोज पर pm2 सर्वर में लिखा है।
मुझे पता है कि ऊपर साझा किए गए समाधानों के अनुसार इसे प्राप्त करने के कई तरीके हैं। मैंने उन सभी की कोशिश नहीं की है, लेकिन कुछ तीसरे पक्ष की सेवाओं में स्पष्टता की कमी है कि सभी कार्य पृष्ठभूमि में चल रहे हैं। मैंने इसे एक पॉवरशेल स्क्रिप्ट के माध्यम से प्राप्त किया है, जिसका उल्लेख विंडोज़ बैच फ़ाइल के समान है। मैंने इसे हर मिनट चलाने के लिए विंडोज टास्क शेड्यूलर का उपयोग करके निर्धारित किया है। यह अब तक काफी कुशल और पारदर्शी रहा है। मेरा यहाँ लाभ यह है कि मैं इसे फिर से शुरू करने से पहले स्पष्ट रूप से प्रक्रिया की जाँच कर रहा हूँ। यह सर्वर पर CPU के लिए बहुत अधिक उपरिशायी नहीं होगा। इसके अलावा, आपको फ़ाइल को स्टार्टअप फ़ोल्डर में स्पष्ट रूप से रखने की आवश्यकता नहीं है।
function CheckNodeService ()
{
$node = Get-Process node -ErrorAction SilentlyContinue
if($node)
{
echo 'Node Running'
}
else
{
echo 'Node not Running'
Start-Process "C:\Program Files\nodejs\node.exe" -ArgumentList "app.js" -WorkingDirectory "E:\MyApplication"
echo 'Node started'
}
}
CheckNodeService
इस उत्तर से सीधे कॉपी किया गया :
आप किसी भी भाषा में एक स्क्रिप्ट लिख सकते हैं जिसे आप इसे (यहां तक कि नोडज का उपयोग करके) स्वचालित करना चाहते हैं और फिर उपयोगकर्ता की% appdata% \ Microsoft \ Windows \ Start Menu \ Programs \ Startup फ़ोल्डर में उस स्क्रिप्ट के लिए एक शॉर्टकट स्थापित करें