J'essaie de faire travailler le superviseur pour m'assurer que mon système de file d'attente fonctionne toujours.
Voici les étapes que j'ai prises, que j'ai rassemblées à partir de diverses sources: (Ran en tant que superutilisateur ou superutilisateur)
1) Superviseur $ easy_install
2) $ echo_supervisord_conf> /etc/supervisord.conf
3) $ Sudo vi supervisord.conf
4) Collé ce qui suit à la fin du fichier:
commande =/usr/bin/php/chemin/vers/AppName/artisan --env = production --timeout = 240 file d'attente: écouter
5) $ supervisord -c /etc/supervisord.conf
6) $ superviseurctl
7) superviseur> statut
superviseur>
Il n'affiche rien.
Voici la solution que j'ai choisie. AWS AMI inclut pip pour l'installation des applications Python. Voici les commandes de configuration:
$ Sudo pip install supervisor
$ echo_supervisord_conf
$ Sudo su -
$ echo_supervisord_conf > /etc/supervisord.conf
Après avoir installé Supervisor, vous devrez créer manuellement votre script de démarrage pour activer et désactiver le service.
Cela variera en fonction de votre distribution Linux, Ubuntu créera un script d'initialisation pour vous lors de l'installation, d'autres distributions comme AMI ne le feront pas. Voici une excellente ressource pour divers scripts de lancement de distribution Linux:
https://github.com/Supervisor/initscripts
Vous pouvez ensuite ajouter un superviseur à chkconfig pour démarrer automatiquement au redémarrage du système.
En voici une qui fonctionne pour moi:
Chemin
/etc/init.d/supervisord
Exemple de script d'initialisation pour AWS-AMI ou 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
Après avoir fermé et enregistré, rendez-le exécutable par tous les utilisateurs:
chmod a+x /etc/init.d/supervisord
Vous voudrez ensuite confirmer que le processus Supervisord est en fait en cours d'exécution en exécutant la commande suivante:
ps -fe | grep supervisor
Si vous ne voyez pas/usr/bin/supervisord comme un processus en cours, vous devez le démarrer manuellement:
Sudo service supervisord start
Supervisord doit être démarré chaque fois que le serveur est redémarré. Cela peut être fait de la même manière que Apache est activé après le redémarrage à l'aide de chkconfig.
Ajoutez-le d'abord à chkconfig, votre liste de processus de démarrage
Sudo chkconfig --add supervisord
Dites ensuite à chkconfig de l'allumer après le démarrage
Sudo chkconfig supervisord on
le superviseur ne sait pas que vous avez ajouté un programme. Ceci est répondu par défaut du serveur , procédez comme suit:
supervisorctl reread
supervisorctl update
Soit dit en passant, il est plus facile de gérer les fichiers de configuration à l'aide de conf.d
syntaxe. En d'autres termes, créez un fichier appelé /etc/supervisor/conf.d/artisan.conf
. Tout le reste est le même, mais il est plus facile de contrôler la version de vos fichiers de configuration et de les synchroniser avec les machines lors de l'installation.