2012-02-20 13 views
9

मैं एक ऐप कैसे बना सकता हूं जो स्वयं को पुनरारंभ कर सकता है? मैं एक ऐप बनाना चाहता हूं जो एक वेब-एडमिन सेट करता है जो खुद को पुनरारंभ कर सकता है। क्या यह संभव है? यदि हां, तो कैसे? मैं सोच रहा था कि प्रक्रिया मॉड्यूल के साथ यह संभव हो सकता है जो नोड में बनाया गया है।node.js ऐप जो खुद को पुनरारंभ कर सकता है

+0

कई मॉड्यूल विकी-बिल्ड-एंड-डिप्लॉयमेंट का दावा करना आसान है। – sarnold

उत्तर

11

मैंने हमेशा कई बार भाग लिया है और इसे शुरू करना आसान है। इसे यहां देखें: https://github.com/nodejitsu/forever

+0

मुझे नहीं लगता कि हमेशा आपको मैन्युअल रूप से रीस्टार्ट करने की अनुमति देता है – LordZardeck

+0

@ लॉर्ड: 'रीस्टार्ट' और 'रीस्टार्टॉल' कमांड पर विशेष ध्यान दें। – sarnold

+0

हू, वे थेरेन ' रीडेमे में टी। मैं अभी इसे स्थापित करने की कोशिश कर रहा हूं, लेकिन मुझे विंडोज़ पर कुछ समस्याएं हैं। http://stackoverflow.com/questions/9366916/cant-install-forever-on- विन्डोज़ – LordZardeck

4

मुझे पता है कि उत्तर देने में थोड़ा देर हो चुकी है, हालांकि मुझे एक समान आवश्यकता थी। जब भी मैंने कॉन्फ़िगरेशन परिवर्तन किया था, मैं अपनी नोड प्रक्रिया को पुनरारंभ करना चाहता था। मैं अपनी नोड प्रक्रियाओं को प्रबंधित करने के लिए pm2 का उपयोग कर रहा हूं, इसलिए यह वास्तव में आसान साबित हुआ।

कॉन्फ़िगरेशन परिवर्तन करने के बाद, मैं नोड प्रक्रिया के भीतर से process.exit() निष्पादित करता हूं। जहां तक ​​मैं देख सकता हूं, प्रक्रिया तब निकलती है जब pm2 प्रक्रिया को ठीक करता है।

अभी तक सुनिश्चित नहीं है कि कोई दुष्प्रभाव हैं लेकिन ऐसा लगता है कि अभी मेरे लिए ठीक काम कर रहा है।

+0

यह मेरे लिए भी सही उत्तर है – Antoine

2
  1. आप बच्चे प्रक्रिया का उपयोग कर अपने अनुप्रयोग चलाने के लिए और यह हेरफेर कैसे की जरूरत कर सकते हैं: https://nodejs.org/api/child_process.html

  2. उपयोग हमेशा के लिए, PM2 या जो कुछ भी बात मृत्यु के बाद पुनः आरंभ और process.exit साथ ही मारने के लिए() https://nodejs.org/api/process.html

0

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

npm install -g nodemon 
sudo nodemon server.js 

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

4

लालकृष्ण "मैं

यह बाहरी निर्भरता के बिना संभव है:

console.log("This is pid " + process.pid); 
setTimeout(function() { 
    process.on("exit", function() { 
     require("child_process").spawn(process.argv.shift(), process.argv, { 
      cwd: process.cwd(), 
      detached : true, 
      stdio: "inherit" 
     }); 
    }); 
    process.exit(); 
}, 5000); 

स्रोत: https://github.com/joyent/node/wiki/modules# से https://gist.github.com/silverwind/d0802f7a919ae86ff25e

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