Ecco la soluzione con cui sono andato. AWS AMI include pip per l'installazione di applicazioni Python. Qui ci sono i comandi di configurazione:
$ sudo pip install supervisor
$ echo_supervisord_conf
$ sudo su -
$ echo_supervisord_conf > /etc/supervisord.conf
Dopo aver installato supervisore è necessario creare manualmente lo script di start-up per trasformare il servizio on e off.
Questo varierà con la tua distribuzione Linux, Ubuntu creerà uno script di init per te quando installerai, altre distribuzioni come l'AMI non lo faranno. Qui è una grande risorsa per i vari script di init-up distro Linux:
https://github.com/Supervisor/initscripts
È possibile quindi aggiungere supervisore di chkconfig per iniziare automaticamente al riavvio del sistema.
Ecco quello che funziona per me:
Percorso
/etc/init.d/supervisord
Esempio Init Script per AWS-AMI o RedHat Linux
#!/bin/bash
#
# supervisord Startup script for the Supervisor process control system
#
# Author: Mike McGrath <[email protected]> (based off yumupdatesd)
# Jason Koppe <[email protected]> adjusted to read sysconfig,
# use supervisord tools to start/stop, conditionally wait
# for child processes to shutdown, and startup later
# Erwan Queffelec <[email protected]>
# make script LSB-compliant
#
# chkconfig: 345 83 04
# description: Supervisor is a client/server system that allows \
# its users to monitor and control a number of processes on \
# UNIX-like operating systems.
# processname: supervisord
# config: /etc/supervisord.conf
# config: /etc/sysconfig/supervisord
# pidfile: /var/run/supervisord.pid
#
### BEGIN INIT INFO
# Provides: supervisord
# Required-Start: $all
# Required-Stop: $all
# Short-Description: start and stop Supervisor process control system
# Description: Supervisor is a client/server system that allows
# its users to monitor and control a number of processes on
# UNIX-like operating systems.
### END INIT INFO
# Source function library
. /etc/rc.d/init.d/functions
# Source system settings
if [ -f /etc/sysconfig/supervisord ]; then
. /etc/sysconfig/supervisord
fi
# Path to the supervisorctl script, server binary,
# and short-form for messages.
supervisorctl=/usr/local/bin/supervisorctl
supervisord=${SUPERVISORD-/usr/local/bin/supervisord}
prog=supervisord
pidfile=${PIDFILE-/tmp/supervisord.pid}
lockfile=${LOCKFILE-/var/lock/subsys/supervisord}
STOP_TIMEOUT=${STOP_TIMEOUT-60}
OPTIONS="${OPTIONS--c /etc/supervisord.conf}"
RETVAL=0
start() {
echo -n $"Starting $prog: "
daemon --pidfile=${pidfile} $supervisord $OPTIONS
RETVAL=$?
echo
if [ $RETVAL -eq 0 ]; then
touch ${lockfile}
$supervisorctl $OPTIONS status
fi
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc -p ${pidfile} -d ${STOP_TIMEOUT} $supervisord
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -rf ${lockfile} ${pidfile}
}
reload() {
echo -n $"Reloading $prog: "
LSB=1 killproc -p $pidfile $supervisord -HUP
RETVAL=$?
echo
if [ $RETVAL -eq 7 ]; then
failure $"$prog reload"
else
$supervisorctl $OPTIONS status
fi
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status -p ${pidfile} $supervisord
RETVAL=$?
[ $RETVAL -eq 0 ] && $supervisorctl $OPTIONS status
;;
restart)
restart
;;
condrestart|try-restart)
if status -p ${pidfile} $supervisord >&/dev/null; then
stop
start
fi
;;
force-reload|reload)
reload
;;
*)
echo $"Usage: $prog {start|stop|restart|condrestart|try-restart|force-reload|reload}"
RETVAL=2
esac
exit $RETVAL
Dopo aver chiudere e salvare, renderlo eseguibile da tutti gli utenti:
chmod a+x /etc/init.d/supervisord
Si sarebbe vicino voler confermare che il processo supervisord è infatti in esecuzione eseguendo il comando seguente:
ps -fe | grep supervisor
Se non vedi/usr/bin/supervisord come un processo in esecuzione, allora avete bisogno per iniziare esso manualmente:
sudo service supervisord start
Supervisord deve essere avviato in qualsiasi momento che il server viene riavviato. Questo può essere fatto in modo simile a come viene attivato Apache dopo il riavvio usando chkconfig.
Prima inserirlo al chkconfig, la vostra start up lista dei processi
sudo chkconfig --add supervisord
poi dire chkconfig per accenderlo dopo il boot
sudo chkconfig supervisord on
Ho creato il file "/etc/init.d/supervisord" e poi ho eseguito "sudo service supervisord start" ma io ricevuto "env: /etc/init.d/supervisord: permesso negato" .... qualche idea? Sto usando ec2 Amazon AIM con centos 7 – llioor
'chmod a + x/etc/init.d/supervisord' per renderlo eseguibile era un passo mancante in questa risposta molto dettagliata :) –
Grazie Filipe, aggiornerò la risposta . –