amazon-web-services - raspberry - install supervisor centos
ConfiguraciĆ³n de Supervisord en un servidor AWS AMI Linux (2)
Aquí está la solución con la que fui. AWS AMI incluye pip para instalar aplicaciones Python. Aquí están los comandos de configuración:
$ sudo pip install supervisor
$ echo_supervisord_conf
$ sudo su -
$ echo_supervisord_conf > /etc/supervisord.conf
Después de instalar supervisor, deberá crear manualmente su secuencia de comandos de inicio para activar y desactivar el servicio.
Esto variará con su distribución de Linux, Ubuntu creará un script de inicio cuando lo instale, y otras distribuciones como AMI no lo harán. Aquí hay un gran recurso para varios scripts de inicio de distro de Linux:
https://github.com/Supervisor/initscripts
Luego puede agregar supervisor a chkconfig para comenzar automáticamente en el reinicio del sistema.
Aquí hay uno que me funciona:
Camino
/etc/init.d/supervisord
Ejemplo de script de inicio para 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
Después de cerrar y guardar, haz que todos los usuarios lo puedan ejecutar:
chmod a+x /etc/init.d/supervisord
A continuación, querrá confirmar que el proceso de supervisión se está ejecutando ejecutando el siguiente comando:
ps -fe | grep supervisor
Si no ve / usr / bin / supervisord como un proceso en ejecución, entonces necesita iniciarlo manualmente:
sudo service supervisord start
Supervisord debe iniciarse cada vez que se reinicie el servidor. Esto se puede hacer de manera similar a cómo se apache apache después de reiniciar usando chkconfig.
Primero agréguelo a chkconfig, su lista de procesos de inicio
sudo chkconfig --add supervisord
Luego dile a chkconfig que lo encienda después del arranque
sudo chkconfig supervisord on
Estoy tratando de hacer que el supervisor trabaje para asegurarme de que mi sistema de colas siempre esté funcionando.
Aquí están los pasos que tomé, los cuales reuní a partir de varias fuentes: (Funcionó como root o superusuario)
1) $ easy_install supervisor
2) $ echo_supervisord_conf> /etc/supervisord.conf
3) $ sudo vi supervisord.conf
4) Pegó lo siguiente al final del archivo:
comando = / usr / bin / php / ruta / a / Nombre de aplicación / artisan --env = producción --timeout = 240 cola: escuchar
5) $ supervisord -c /etc/supervisord.conf
6) $ supervisorctl
7) supervisor> estado
supervisor>
No muestra nada.
El supervisor no sabe que ha agregado un programa. Esto se responde en serverfault , haga lo siguiente:
supervisorctl reread
supervisorctl update
Por cierto, es más fácil mantener los archivos de configuración utilizando la sintaxis conf.d
En otras palabras, cree un archivo llamado /etc/supervisor/conf.d/artisan.conf
. Todo lo demás es igual, pero es más fácil controlar la versión de sus archivos de configuración y sincronizarlos con las máquinas en la configuración.