2013-05-14 12 views
16

हम एक परियोजना के विकास को खत्म कर रहे हैं, ग्राहक पहले से ही इसका उपयोग कर रहा है लेकिन कभी-कभी कुछ त्रुटियां होती हैं - सर्वर को क्रैश करना।स्वचालित रूप से एक नोड सर्वर को पुनरारंभ कैसे करें?

मुझे पता है कि मैं लिनक्स पर 'अपस्टार्ट' स्क्रिप्ट के रूप में एक सेवा पंजीकृत कर सकता हूं, ताकि क्रैश होने पर मेरी नोड सेवा पुनरारंभ हो सके।

लेकिन हमारा सर्वर अन्य सामान चला रहा है, इसलिए हम इसे पुनरारंभ नहीं कर सकते हैं। ठीक है, वास्तव में, जबकि लेखन, मुझे लगता है मैं दो सवाल तो है एहसास:

  • विल 'नवोदय' काम रिबूट के बिना? कुछ सिर्फ मुझे हां फुसफुसा रहा है :)
  • यदि नहीं, तो मुझे क्रैश होने पर मेरे नोड सर्वर को 'respawn' करना होगा?

उत्तर

25

हां, अपस्टार्ट रीबूट के बिना आपकी प्रक्रिया को पुनरारंभ करेगा।

इसके अलावा, आपको forever पर देखना चाहिए।

+3

ग्लोबल एरर हैंडलर त्रुटि प्रबंधन के लिए खुशी की मार्गदर्शिका से निराश है: https://www.joyent.com/developers/node/design/errors। अगर किसी अज्ञात बग ने अपवाद का कारण बना दिया है, तो ऐप को क्रैश करना और इसे खराब स्थिति में छोड़ना बेहतर है जिससे इसे खराब स्थिति में छोड़ दिया जा सकेगा जिससे अधिक हार्ड-टू-डीबग बग हो जाएंगे। – syonip

+0

सच है। मुझे इस बारे में पता नहीं था जब मैंने यह जवाब पोस्ट किया था। इस पर ध्यान दिलाने के लिए धन्यवाद। मैं इसे हटा दूंगा। – Daniel

-2

आप nodemon का भी उपयोग कर सकते हैं।

npm install -g nodemon 

nodemon निर्देशिका कि nodemon शुरू किया गया था में फ़ाइलों को देखेंगे, और अगर वे बदल सकते हैं, तो यह अपने आप नोड आवेदन पुनः आरंभ करेगा।


संपादित

sudo nodemon server.js 
+11

AFAIK nodemon स्रोत फ़ाइलों में परिवर्तन के लिए देखने के लिए है। देव के लिए बढ़िया है लेकिन लाइव तैनाती के लिए इतना नहीं है। वेबसाइट को उद्धृत करने के लिए: "नोडमन एक उपयोगिता है जो आपके स्रोत में किसी भी बदलाव के लिए निगरानी रखेगी और स्वचालित रूप से आपके सर्वर को पुनरारंभ करेगी।" – Boon

+0

इसे दूर पर्यावरण के लिए, उत्पादन में क्यों आपको सर्वर को स्वचालित रूप से पुनरारंभ करने की आवश्यकता है? –

+1

nodemon दुर्घटना में पुनरारंभ नहीं करता है। यह केवल तभी पुन: प्रारंभ होता है जब आप कुछ फाइलें बदलते हैं। अन्य बुद्धिमान – Toumi

6

PM2 Node.js अनुप्रयोग के लिए एक उत्पादन प्रक्रिया प्रबंधक है।

1

यदि स्वचालित पुनरारंभ करने के लिए आपका फ़ोकस हमेशा चल रहा एप्लिकेशन है, तो मैं एक प्रक्रिया प्रबंधक का उपयोग करने का सुझाव देता हूं। प्रक्रिया प्रबंधक, सामान्य रूप से, नोड प्रक्रिया को संभालता है (यदि क्लस्टर सक्षम है तो es), और प्रक्रिया/es निष्पादन के लिए ज़िम्मेदार है। पीएम ऑपरेटिव सिस्टम पर निर्भर करता है: आपका नोड ऐप और ओएस इतनी गंभीरता से जंजीर नहीं है क्योंकि अपराह्न बीच में है।

अंतिम चाल: प्रक्रिया प्रबंधक को अपस्टार्ट पर रखें।

Here अनुसरण करने के लिए एक पूर्ण प्रदर्शन सुधार पथ है।

संबंधित मुद्दे