लिनक्स (उबंटू) पर पर्यवेक्षक को स्वचालित रूप से कैसे शुरू करें


38

पर्यवेक्षक एक init स्क्रिप्ट के साथ नहीं आता है या यह इंगित नहीं करता है कि इसे स्वचालित रूप से कैसे शुरू किया जाए, अर्थात। रिबूट के बाद। मैंने कुछ उपयोगकर्ता-योगदान वाले /etc/init.d स्क्रिप्ट की कोशिश की है, लेकिन वे सभी विफल हैं।

पसंदीदा समाधान क्या होगा?


आप "असफल" कैसे मतलब है? btw; ऐसा लगता है कि यह सवाल सर्वरफॉल्ट पर आधारित है।
एरनॉन

डेबियन स्थिर में init स्क्रिप्ट काम कर रही है, इसलिए मुझे लगता है कि यह प्रश्न पुराना है।

जवाबों:


40

वास्तव में, मुझे एक ऐसा मिला जो यहां काम करता है http://gist.github.com/176149 । इसे स्थापित करने के लिए:

sudo curl https://gist.github.com/howthebodyworks/176149/raw/88d0d68c4af22a7474ad1d011659ea2d27e35b8d/supervisord.sh > /etc/init.d/supervisord

इसे चलाने के लिए

sudo chmod +x /etc/init.d/supervisord

और स्वचालित रूप से इसे शेड्यूल करने के लिए, करें

sudo update-rc.d supervisord defaults

/Etc/supervisord.conf में सही पीड सुनिश्चित करें जो /etc/init.d/supervisord में मैप की गई है

example: pidfile=/var/run/supervisord.pid

बंद करो और ठीक से काम शुरू करो

service supervisord stop
service supervisord start

यह डेबियन विशिष्ट है? एक Centos6.5 बॉक्स पर /lib/init/vars.sh और update-rc.d गुम
EoghanM

1
हमें कैसे पता चलेगा कि सुपरवाइजर.कॉन्फ़ कहाँ जाता है?
वीवेई

1
मैंने पाया कि डेबियन निचोड़ रेपो से सिर्फ सुपरवाइजर को स्थापित करना बहुत आसान था
रिचवेल

2
@RichVel एक अल्फा वर्जन है, जिसमें कई बग्स हैं। हो सकता है कि उनमें से अधिकांश आपके सिस्टम को प्रभावित न करें, लेकिन आप सुनिश्चित नहीं हो सकते हैं, और नवीनतम रिलीज नहीं होने से आप किसी भी क्षण में काट सकते हैं। स्रोत रेपो की जाँच करें और आप देखेंगे कि संस्करण 3.0a8 और 3.0b2 github.com/Supervisor/supervisor/compare/3.0a8...3.0b2
glarrain

1
@glarrain - हेड-अप और तुलना लिंक के लिए धन्यवाद ... यह महसूस नहीं किया - कि डेबियन पैकर ने एक अल्फा रिलीज ले लिया। निश्चित रूप से डेबियन स्थिर की बात केवल सिद्ध संस्करणों का उपयोग करना है ...
रिचवेल जूएल

13

मैंने ubuntu 9.10 के लिए एक upstart स्क्रिप्ट बनाई

उदाहरण के लिए मैंने पर्यवेक्षक को एक आभासी वातावरण में स्थापित किया, फिर पर्यवेक्षक को ऊपर से शुरू और नियंत्रित करें।

एक टेक्स्ट फ़ाइल /etc/init/supervisord.conf बनाएं

सामग्री हैं:

description     "supervisord"

start on runlevel [345]
stop on runlevel [!345]

expect fork
respawn

exec /misc/home/bkc/Python_Environments/java2/supervisord/bin/supervisord -c /misc/home/bkc/Python_Environments/java2/supervisord/work/supervisord.conf

यह स्वचालित रूप से बूट पर पर्यवेक्षक शुरू करेगा। मैन्युअल रूप से .conf फ़ाइल बनाने के बाद प्रारंभ करें, का उपयोग करें

sudo प्रारंभ पर्यवेक्षक

सेवा को मैन्युअल रूप से बंद करने के लिए, उपयोग करें

sudo रोक पर्यवेक्षक


2
धन्यवाद! यहाँ एक-लाइनर है: curl -L https://gist.github.com/raw/1213031/929e578faae2ad3bcb29b03d116bcb09e1932221/sup‌​ervisord.conf > /etc/init/supervisord.conf && start supervisord(आपको रूट होने की ज़रूरत है)
charlax

3
हमेशा उन्हें चलाने से पहले एक-लाइनर की जाँच करें। यह ठीक है, लेकिन मैं सिर्फ उस टिप को जोड़ना चाहता था।
कोरी वॉकर

12

यह वही है जो मैं आरएचईएल 5.4 और सेंटोस 5.5 पर उपयोग करता हूं

मुझे यकीन नहीं है कि यह मेरे सुपरवाइजर.कॉन्फ़ में कुछ कॉन्फ़िगरेशन सेटिंग्स पर निर्भर है। लेकिन यह ठीक काम करने लगता है।

इसे स्थापित करने के बाद आपको निम्न कमांड को चलाने की आवश्यकता है

chkconfig --add supervisord

[/Etc/rc.d/init.d/supervisord]

#!/bin/sh
#
# /etc/rc.d/init.d/supervisord
#
# Supervisor is a client/server system that
# allows its users to monitor and control a
# number of processes on UNIX-like operating
# systems.
#
# chkconfig: - 64 36
# description: Supervisor Server
# processname: supervisord

# Source init functions
. /etc/rc.d/init.d/functions

prog="supervisord"

prefix="/usr/"
exec_prefix="${prefix}"
prog_bin="${exec_prefix}/bin/supervisord"
PIDFILE="/var/run/$prog.pid"

start()
{
        echo -n $"Starting $prog: "
        daemon $prog_bin --pidfile $PIDFILE
        [ -f $PIDFILE ] && success $"$prog startup" || failure $"$prog startup"
        echo
}

stop()
{
        echo -n $"Shutting down $prog: "
        [ -f $PIDFILE ] && killproc $prog || success $"$prog shutdown"
        echo
}

case "$1" in

  start)
    start
  ;;

  stop)
    stop
  ;;

  status)
        status $prog
  ;;

  restart)
    stop
    start
  ;;

  *)
    echo "Usage: $0 {start|stop|restart|status}"
  ;;

esac

इसे चलाने का प्रयास करने से पहले आपको केवल एक + x अनुमतियाँ जोड़ने की आवश्यकता होगी: chmod + x /etc/init.d/supervisord
JiminyCricket

यह मत भूलो कि दौड़ने के बाद chkconfig --add supervisordआपको अलग-अलग रन स्तरों के लिए इसे सक्षम करने की आवश्यकता हैchkconfig supervisord --level 345 on
कोरी बैलॉ

5

आधिकारिक पर्यवेक्षक GitHub रेपो में एक डेबियन / उबंटू स्क्रिप्ट है:

https://github.com/Supervisor/initscripts/blob/master/debian-norrgard


क्षमा करें, SVN अब नहीं है। क्या कोई वैकल्पिक स्थान है?
एलिस्टर बुलमैन

4
हां - यह सब GitHub में ले जाया गया है: github.com/Supervisor/initscripts
fish2000

2

यह मेरे लिए Ubuntu 10.04.3 LTS पर काम कर रहा है। यह 8.04 में भी काम करता है:

करने के लिए निम्नलिखित जोड़ें /etc/init.d/supervisord

#! /bin/bash -e

SUPERVISORD=/usr/local/bin/supervisord
PIDFILE=/tmp/supervisord.pid
OPTS="-c /etc/supervisord.conf"

test -x $SUPERVISORD || exit 0

. /lib/lsb/init-functions

export PATH="${PATH:+$PATH:}/usr/local/bin:/usr/sbin:/sbin"

case "$1" in
  start)
    log_begin_msg "Starting Supervisor daemon manager..."
    start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $SUPERVISORD -- $OPTS || log_end_msg 1
    log_end_msg 0
    ;;
  stop)
    log_begin_msg "Stopping Supervisor daemon manager..."
    start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE || log_end_msg 1
    log_end_msg 0
    ;;

  restart|reload|force-reload)
    log_begin_msg "Restarting Supervisor daemon manager..."
    start-stop-daemon --stop --quiet --oknodo --retry 30 --pidfile $PIDFILE
    start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $SUPERVISORD -- $OPTS || log_end_msg 1
    log_end_msg 0
    ;;

  *)
    log_success_msg "Usage: /etc/init.d/supervisor
{start|stop|reload|force-reload|restart}"
    exit 1
esac

exit 0

तो भागो:

sudo chmod +x /etc/init.d/supervisord
sudo update-rc.d supervisord defaults

sudo service supervisord start

अन्य किसी भी उत्तर ने मेरे लिए काम नहीं किया।


1

मैंने तर्क प्रक्रिया को "रोकने" को ठीक करने के लिए /etc/init.d/supervisord में यह पंक्तियाँ जोड़ीं:

do_stop()
{
    /usr/local/bin/supervisorctl stop all
    /usr/local/bin/supervisorctl shutdown
    # Return
    ...

और यह मेरे लिए बहुत अच्छा काम करता है।


1

पर्यवेक्षक अब उपयुक्त रिपॉजिटरी में प्रतीत होता है, इसलिए यह जरूरी नहीं है कि हाथ से लिखी हुई फाइलों को ही लिखा जाए:

sudo apt-get install supervisor

आप स्थापना से पहले अपनी पुरानी फ़ाइलों को पहले (और बैकअप) साफ करना चाहते हैं।


आपको यह जानने की आवश्यकता है कि "इनमें से कुछ पैकेज आधिकारिक रिलीज़ संस्करण से काफी पिछड़ सकते हैं। उदाहरण के लिए, उबंटू 12.04 (अप्रैल 2012 को रिलीज़) पर्यवेक्षक 3.0a8 (जनवरी 2010 को रिलीज़) के आधार पर एक पैकेज प्रदान करता है।" (
सुपरविर्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.