यह एक पुराना प्रश्न है, लेकिन Google पर इसे उच्च स्थान दिया गया है। मैं लगभग उच्चतम मत वाले उत्तरों पर विश्वास नहीं कर सकता, क्योंकि स्क्रीन सत्र के अंदर एक नोड.जेएस प्रक्रिया को चलाना, &
या यहां तक कि nohup
ध्वज के साथ - उनमें से सभी - बस वर्कआरा हैं।
विशेष रूप से स्क्रीन / tmux समाधान, जिसे वास्तव में एक शौकिया समाधान माना जाना चाहिए । स्क्रीन और Tmux प्रक्रियाओं को चालू रखने के लिए नहीं हैं, बल्कि टर्मिनल सत्रों के बहुसंकेतन के लिए हैं। यह ठीक है, जब आप अपने सर्वर पर एक स्क्रिप्ट चला रहे हैं और डिस्कनेक्ट करना चाहते हैं। लेकिन एक नोड.जेएस सर्वर के लिए आपकी प्रक्रिया एक टर्मिनल सत्र से जुड़ी नहीं होना चाहती है। यह बहुत नाजुक है। चीजों को चालू रखने के लिए आपको प्रक्रिया को निष्क्रिय करने की आवश्यकता है!
ऐसा करने के लिए बहुत सारे अच्छे उपकरण हैं।
PM2 : http://pm2.keymetrics.io/
# basic usage
$ npm install pm2 -g
$ pm2 start server.js
# you can even define how many processes you want in cluster mode:
$ pm2 start server.js -i 4
# you can start various processes, with complex startup settings
# using an ecosystem.json file (with env variables, custom args, etc):
$ pm2 start ecosystem.json
एक बड़ा फायदा जो मैं पीएम 2 के पक्ष में देखता हूं, वह यह है कि यह प्रक्रिया शुरू करने के लिए सिस्टम स्टार्टअप स्क्रिप्ट को फिर से शुरू करने के लिए बना सकता है:
$ pm2 startup [platform]
कहाँ platform
हो सकता है ubuntu|centos|redhat|gentoo|systemd|darwin|amazon
।
हमेशा के लिए। js : https://github.com/foreverjs/forever
# basic usage
$ npm install forever -g
$ forever start app.js
# you can run from a json configuration as well, for
# more complex environments or multi-apps
$ forever start development.json
Init स्क्रिप्ट :
मैं एक init स्क्रिप्ट लिखने के बारे में विस्तार से नहीं जा रहा हूं, क्योंकि मैं इस विषय का विशेषज्ञ नहीं हूं और यह इस उत्तर के लिए बहुत लंबा होगा, लेकिन मूल रूप से वे सरल शेल स्क्रिप्ट हैं, जो ओएस घटनाओं द्वारा ट्रिगर किया गया है। आप इसके बारे में और अधिक यहाँ पढ़ सकते हैं
डॉकटर :
बस के साथ एक डोकर कंटेनर में अपने सर्वर चलाने -d
विकल्प और, देखा , तो आप एक daemonized Node.js सर्वर है!
यहाँ एक नमूना Dockerfile (नोड से है। आधिकारिक गाइड ):
FROM node:argon
# Create app directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
# Install app dependencies
COPY package.json /usr/src/app/
RUN npm install
# Bundle app source
COPY . /usr/src/app
EXPOSE 8080
CMD [ "npm", "start" ]
फिर अपनी छवि बनाएं और अपना कंटेनर चलाएं:
$ docker build -t <your username>/node-web-app .
$ docker run -p 49160:8080 -d <your username>/node-web-app
आशा है कि यह किसी को इस पृष्ठ पर उतरने में मदद करेगा। हमेशा नौकरी के लिए उचित उपकरण का उपयोग करें। यह आपको बहुत सारे सिरदर्द और घंटे बचाएगी!
exit
। जब मैं सिर्फ पुट्टी विंडो बंद करता हूं तो यह विफल हो जाता है।