2011-10-26 3 views
6

supervisord मेरे उबंटू 10.04 पर स्थापित supervisord है और यह जावा प्रक्रिया को लगातार चलाता है और किसी भी तरह से मर या क्रैश होने पर प्रक्रिया को ठीक करने के लिए (पुनः लोड) प्रक्रिया को चलाता है।सुपरवाइज़र्ड

पर मेरी htop मैं भेज SIGKILL, SIGTERM, SIGHUP, कि जावा प्रक्रिया को SIGSEGV संकेतों और /etc/logs/supervisord.log फ़ाइल देख सकते हैं और यह कहते हैं।

08:09:46,182 INFO success: myprogram entered RUNNING state,[...] 
08:38:10,043 INFO exited: myprogram (exit status 0; expected) 

08:38 मैं SIGSEGV साथ प्रक्रिया मार डालते हैं। कोड 0 के साथ यह कैसे निकला है और supervisord क्यों इसे पुनरारंभ नहीं करता है?

मेरे सभी supervisord.conf इस विशेष कार्यक्रम के बारे में इस प्रकार है:

[program:play-9000] 
command=play run /var/www/myprogram/ --%%prod 
stderr_logfile = /var/log/supervisord/myprogram-stderr.log 
stdout_logfile = /var/log/supervisord/myprogram-stdout.log 

प्रक्रिया वास्तव में ठीक काम करता है जब मैं supervisord लॉन्च करते हैं, फिर भी चंगा न हो।

किसी भी विचार से पर्यवेक्षक को सेवा के रूप में कैसे शुरू किया जाए ताकि पूरे सिस्टम रीबूट होने पर स्वचालित रूप से लॉन्च हो जाए?

उत्तर

11

autorestart=true सेट करने का प्रयास करें। डिफ़ॉल्ट रूप से, ऑटोरेस्टार्ट "अप्रत्याशित" पर सेट होता है जिसका अर्थ है कि यह केवल एक प्रक्रिया को पुनरारंभ करेगा यदि यह एक अप्रत्याशित निकास कोड के साथ मौजूद है। डिफ़ॉल्ट रूप से, बाहर निकलें कोड 0 की उम्मीद है।

http://supervisord.org/configuration.html#program-x-section-settings

आप chkconfig प्रोग्राम का उपयोग सुनिश्चित करें कि पर्यवेक्षक रिबूट पर शुरू होता है बनाने के लिए कर सकते हैं।

$ sudo apt-get install chkconfig 
$ chkconfig -l supervisor 
supervisor    0:off 1:off 2:on 3:on 4:on 5:on 6:off 

आप देख सकते हैं कि यह इसे स्थापित करते समय डिफ़ॉल्ट रूप से रनलेवल 2-5 के लिए सक्षम है।

$ man 7 runlevel 

रन स्तर पर अधिक जानकारी के लिए।

+0

काफी बढ़िया! मैं इस 'ऑटोरेस्टार्ट' सेटिंग की तलाश में था। मैं डिफ़ॉल्ट रूप से इसे 'सत्य' होने की उम्मीद कर रहा था और फिर मैं प्रलेखन में खो गया था। बीटीडब्ल्यू मुझे लगता है कि 'chkconfig' को एक सेवा होने की प्रक्रिया की आवश्यकता होती है, हालांकि' पर्यवेक्षक 'सेवा नहीं है, इसलिए' chkconfig -l' कमांड मुझ पर काम नहीं करता है और 'पर्यवेक्षक: अपरिचित सेवा' कहता है। इसके लिए आप क्या सोचते हैं? –

+1

आपने पर्यवेक्षक को कैसे स्थापित किया? यदि आप एपीटी-गेट का उपयोग करते हैं, तो यह कम से कम उबंटू 10.04 के लिए एक सेवा के रूप में स्थापित हो जाता है। –

+0

यह 10.04 को था और मुझे लगता है कि मैंने इसे 'easy_install' का उपयोग करके इंस्टॉल किया है। उस पर ध्यान देने के लिए धन्यवाद। –