Sunday, August 10, 2008

Supervisión de procesos en UNIX

No sé si existe algo parecido para servidores windows, si lo hay, irremediablemente conllevará su paso por caja, aunque este no es el tema de hoy.

Me imagino que muchos de vosotros habréis sufrido la caída de servicios o procesos en vuestras máquinas Unix, ya sea en el trabajo o en vuestra casa, y hasta pasado un buen tiempo no os habréis dado cuenta, con lo que eso supone: usuarios enfadados, la peli que te estabas copiando por rsync parada, tu sistema de seguridad caído, tu mythtv parado obligándote a levantarte del sofá, un dns que administras parado, tu web caída....
Pues bien, daemontools se encarga de monitorizar los procesos que le indiques y los levantará automáticamente si estos han caído por algún motivo.

Si quieres aumentar la productividad de tus aplicaciones, es recomendable que utilices daemontools , este paquete, que no he conseguido encontrar en los repositorios de Ubuntu es tu salvación.

A continuación expongo los pasos a seguir para hacerlo funcionar en Ubuntu Hardy 8.04, aunque también puedes instalarlo en tu distribución preferida. Yo por ahora sólo lo he probado en Gentoo y Ubuntu.

apt-get install build-essential
mkdir -p /package
chmod 1755 /package
cd /package
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
gunzip daemontools-0.76.tar
tar -xpf daemontools-0.76.tar
rm daemontools-0.76.tar
cd admin/daemontools-0.76
touch /etc/inittab
package/install

Aquí seguramente te dará un error del tipo "/lib/libc.so.6: could not read symbols: Bad value"
para solucionarlo y poder compilar sin problemas sólo tienes que editar el fichero "error.h" y eliminar la línea "extern int errno;" sustituyéndola por "#include <errno.h>" Después de ésto ya podrás ejecutar sin errores package/install. Una vez instalado dentro del directorio /service/ deberás crear un directorio por cada proceso que necesites supervisar y dentro del mismo crear un fichero ./run donde indicar el proceso a ejecutar. Puedes incluir también variables de entorno creando un subdirectorio ./env y también generar logs.

Para ver todas las posibilidades de este paquete lo mejor es que vayas a tu frigorífico cojas una cerveza bien fría y te des un paseo por la web del autor.
http://cr.yp.to/daemontools.html

1 comment:

Teagan Warren said...

Good rreading your post