2012-03-20 12 views
9

मैं एक node.js डेवलपर हूँ। मैं अपने node.js ऐप्स को तैनात करने के लिए अमेज़ॅन ec2 का उपयोग करता हूं।node.js स्क्रिप्ट चलाने के संदर्भ में अपस्टार्ट स्क्रिप्ट या हमेशा के लिए स्क्रिप्ट का उपयोग करने के फायदे और नुकसान क्या हैं ??

मैं अपनी node.js सेवा स्थायी रूप से चलाना चाहता हूं - किसी भी कारण से विफल होने पर पुनरारंभ करना।

मैं 2 टूल्स में आया था। Forever और Upstart

क्या दूसरे पर एक का उपयोग करने के कोई फायदे हैं?

क्या कोई अन्य उपकरण बेहतर है?

+0

+1 सुनिश्चित नहीं है कि यह प्रश्न अधिक प्यार क्यों प्राप्त कर रहा है! मैंने इसे बहुत उपयोगी पाया। –

उत्तर

8

कल का नवाब एक प्रणाली सेवा नियंत्रक, SysV Init के समान है और शुरू कर देंगे/बंद/पुनः आरंभ अनिवार्य रूप से किसी भी सेवा इसके लिए पंजीकृत, Node.js आधारित है या नहीं, और यह भी अपने आप के लिए सिस्टम प्रारंभ होने पर सेवाएं शुरू कर देंगे आप। लेकिन अपस्टार्ट अनिवार्य रूप से उबंटू के लिए विशिष्ट है, और अपस्टार्ट-विशिष्ट सेवाएं अन्य लिनक्स डिस्ट्रोज़ पर नहीं चलेंगी।

अपस्टार्ट में एक एसआईएसवी इनिट संगतता परत है जिसे आप संभवतः संगतता परत के रूप में बनाए रखने के लिए लक्षित कर सकते हैं।

हमेशा के लिए एक नोड.जेएस एप्लीकेशन है जो आवश्यकतानुसार अन्य नोड.जेएस अनुप्रयोगों की निगरानी और पुनरारंभ करता है, और इसकी कॉन्फ़िगरेशन JSON द्वारा परिभाषित किया गया है। कस्टम SysV Init स्क्रिप्ट में डुप्लिकेट करने के लिए आवश्यक प्रयासों के बिना आपकी सेवा पर बहुत सारे विकल्प और सुदृढ़ नियंत्रण। हालांकि, हमेशा एक सिस्टम सेवा नहीं है, इसलिए यदि सर्वर पुनरारंभ होता है, तो आपको मैन्युअल रूप से अपनी हमेशा की स्क्रिप्ट को मैन्युअल रूप से प्रारंभ करना होगा।

इसके अलावा, अगर आपको केवल कुछ चाहिए जो आपकी स्क्रिप्ट को पुन: प्रारंभ करेगा, तो इसे क्रैश होने पर, और आपको सिस्टम स्टार्ट पर स्वचालित रूप से शुरू होने की परवाह नहीं है, आपको बस एक बैश स्क्रिप्ट की आवश्यकता है:

#!/bin/bash 
while true 
do 
    node ./myScript.js 
done 
+0

क्या होगा यदि आपके पास हमेशा के लिए प्रबंधित कुछ नोड प्रक्रियाएं हैं और उनमें से एक को पुनरारंभ करना चाहते हैं? – Anatoliy

+0

[हमेशा के लिए] (https://github.com/nodejitsu/forever) पर प्रलेखन के अनुसार, आप उस स्क्रिप्ट को निर्दिष्ट करते हैं जिसे आप डिमन के रूप में प्रारंभ/बंद/पुनरारंभ करना चाहते हैं, इसलिए आप बस इसका नाम सूचीबद्ध करेंगे। मुझे नहीं पता कि आपको क्या करना होगा यदि दो स्क्रिप्ट के समान नाम हैं। –

+0

स्पष्टीकरण के लिए धन्यवाद। जहां तक ​​मुझे याद है, उदाहरण के लिए यह उदाहरण की संख्या थी। दोनों समाधान असली दुनिया में काम नहीं करेंगे :(तो, मैं अपस्टार्ट का उपयोग जारी रखने जा रहा हूं, यह शानदार उपकरण है। – Anatoliy

5

स्वीकार्य उत्तर में एक भ्रामक कथन को सही करने के लिए ... यह सच नहीं है कि अपस्टार्ट एक उबंटू-केवल तकनीक है। देखें:

https://serverfault.com/questions/291546/centos-6-and-upstart http://searchenterpriselinux.techtarget.com/tip/RHEL-6-ditches-System-V-init-for-Upstart-What-Linux-admins-need-to-know http://en.wikipedia.org/wiki/Upstart#Adoption

इसी के साथ

, मुझे लगता है कि यह एक बहुत अधिक सम्मोहक समाधान है।

+3

बस इसे देखा।RedHat SystemD के लिए अपस्टार्ट को मिट रहा है, इसलिए मुझे लगता है कि मेरा बिंदु खड़ा है। –

+1

डेबियन भी (, कृपया सभी लोअरकेस) systemd को मानकीकृत करने का फैसला किया और यह संभावना लगता है - शटलवर्थ के बयानों के अनुसार - कि उबंटू सूट का पालन करेंगे, पोस्ट 14.04 – Guss

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