it-swarm.com.de

So starten Sie Supervisord automatisch unter Linux (Ubuntu)

Supervisord wird nicht mit einem Init-Skript geliefert oder gibt nicht an, wie es automatisch gestartet werden soll, d. H. nach einem Neustart. Ich habe einige vom Benutzer bereitgestellte Skripte /etc/init.d ausprobiert, aber alle schlagen fehl.

Was wäre die bevorzugte Lösung?

38
sebastien

Eigentlich habe ich eine gefunden, die hier funktioniert http://Gist.github.com/176149 . So installieren Sie es:

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

um es auszuführen

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

und um es automatisch zu planen, tun Sie es

Sudo update-rc.d supervisord defaults

Stellen Sie sicher, dass die PID in /etc/supervisord.conf korrekt ist, die in /etc/init.d/supervisord zugeordnet ist

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

Stoppen und starten Sie die Arbeit ordnungsgemäß

service supervisord stop
service supervisord start
40
sebastien

Ich habe ein Upstart-Skript für Ubuntu 9.10 erstellt

Zum Beispiel habe ich Supervisor in einer virtuellen Umgebung installiert und dann Supervisor von Anfang an gestartet und gesteuert.

erstellen Sie eine Textdatei /etc/init/supervisord.conf

der Inhalt ist:

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

Der Supervisor wird beim Booten automatisch gestartet. Verwenden Sie zum manuellen Starten nach dem Erstellen der .conf-Datei

Sudo startet Supervisord

Verwenden Sie, um den Dienst manuell zu beenden

Sudo Stop Supervisord

13
bkc

Dies ist, was ich auf RHEL 5.4 und CentOS 5.5 verwende

Ich bin mir nicht sicher, ob dies von einigen Konfigurationseinstellungen in meiner Supervisord.conf abhängt. Aber es scheint in Ordnung zu funktionieren.

Sie müssen den folgenden Befehl nach der Installation ausführen

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
12
Peter Lindqvist

Es gibt ein Debian/Ubuntu-Skript im offiziellen GitHub-Repo von Supervisor:

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

5
Mike Korobov

Dies funktioniert für mich unter Ubuntu 10.04.3 LTS. Es scheint auch in 8.04 zu funktionieren:

Fügen Sie Folgendes zu /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

Dann renne:

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

Sudo service supervisord start

Keine der anderen Antworten hat bei mir funktioniert.

2
shennyg

Ich habe diese Zeilen in /etc/init.d/supervisord hinzugefügt, um die Argumentverarbeitung "stop" zu korrigieren:

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

und das funktioniert super für mich.

1
rukeba

Der Supervisor scheint sich jetzt in einem geeigneten Repository zu befinden, daher sollte es nicht erforderlich sein, Init-Dateien von Hand zu erstellen, nur:

Sudo apt-get install supervisor

Möglicherweise möchten Sie Ihre alten Dateien vor der Installation zuerst bereinigen (und sichern).

1
Jeff Bauer