Gracias a supervisor, podremos controlar de manera fácil y precisa los procesos que queramos. Presentaré cómo instalarlo sobre Ubuntu y un pequeño ejemplo de uso.
Lo primero que haremos será instalarlo desde el repositorio:
sudo apt-get install supervisor
Lo más probable es que nos de un error al no encontrar una dependencia: elementtree. Por tanto lo que haremos es desinstalarlo:
sudo apt-get remove supervisor
e instalar la dependencia:
sudo easy_install elementtree
Tras esto ya podremos instalar supervisor
sudo apt-get install supervisor
Bien, ya lo tenemos instalado y ejecutando, pero sin hacer nada útil, así que vamos a modificar el fichero de configuración que trae por defecto y que se encuentra en /etc/supervisor/supervisord.conf, añadiendo las siguientes entradas:
;activamos la interfaz web
[inet_http_server] ; inet (TCP) server disabled by default
port=*:9001 ; (ip_address:port specifier, *:port for all iface)
username=admin ; (default is no username (open server))
password=admin ; (default is no password (open server))
;añadimos un proceso a controlar
[program:cat]
command=/bin/cat ; the program (relative uses PATH, can take args)
process_name=%(program_name)s ; process_name expr (default %(program_name)s)
numprocs=1 ; number of processes copies to start (def 1)
directory=/tmp ; directory to cwd to before exec (def no cwd)
port=*:9001 ; (ip_address:port specifier, *:port for all iface)
username=admin ; (default is no username (open server))
password=admin ; (default is no password (open server))
;añadimos un proceso a controlar
[program:cat]
command=/bin/cat ; the program (relative uses PATH, can take args)
process_name=%(program_name)s ; process_name expr (default %(program_name)s)
numprocs=1 ; number of processes copies to start (def 1)
directory=/tmp ; directory to cwd to before exec (def no cwd)
Existen muchas más opciones, así que lo mejor es que echéis un vistazo a la página oficial.
Una vez hechos los cambios, reiniciaremos supervisor:
sudo /etc/init.d/supervisor stop; /etc/init.d/supervisor start
Y podremos comprobar su funcionamiento accediendo a la url: http://localhost:9001
Desde aquí podemos parar/arrancar el proceso o ver el log (si escribe algún log y lo hemos configurado en superfisord.conf).
Ahora veamos si funciona realmente. Comprobaremos si nuestro proceso (un simple cat) está arrancado por supervisor:
Efectivamente, ahí está activo, con PID 3702 (al igual que vimos en la interfaz web).
Matemos el proceso con un kill -9 3702 y volvamos a hacer un ps:
Y ahí lo volvemos a tener, con un PID nuevo, como podremos comprobar desde la interfaz web.
Además de esto, supervisor tiene un modo consola muy útil que nos permitirá ver el estado de nuestros procesos y hacer con ellos prácticamente de todo. Tan sólo tenemos que entrar supervisorctl:
Si escribimos help, tendremos todas las opciones que nos ofrece.
Pues nada más, ahora a buscarle utilidad a esta gran herramienta.
No hay comentarios:
Publicar un comentario