Localización de descarga (HTTP): http://cr.yp.to/daemontools/daemontools-0.76.tar.gz Localización de descarga (FTP): Versión usada: 0.76 Tamaño del paquete: 162 KB Estimación del espacio necesario en disco: 1.8 MB |
Descargas adicionales: Parche errno para daemontools |
El paquete daemontools es un sustituto para inetd o xinetd. La razón principal para utilizarlo aquí es porque se recomienda usarlo junto con qmail y djbdns.
Instala daemontools ejecutando los siguientes comandos:
cd admin/daemontools-0.76 && patch -Np1 -i ../../daemontools-0.76.errno.patch && package/compile && cd package && sed 's|command|usr/sbin|' boot.inittab > boot.inittab~ && mv boot.inittab~ boot.inittab && cd ../command && sed -e 's|/command:/usr/local/bin:/usr/local/sbin:||' \ -e 's|command|usr/sbin|' \ -e 's|/service|/etc/service|g' svscanboot > svscanboot~ && mv svscanboot~ svscanboot && chmod 555 svscanboot && cp * /usr/sbin && cd ../package && cat /etc/inittab boot.inittab > /etc/inittab~ && mv -f /etc/inittab~ /etc/inittab && mkdir /etc/service && telinit Q |
Lo primero que hay que entender al instalar cualquier paquete escrito por Daniel J. Bernstein, y esto incluye qmail, djbdns y ucspi-tcp aparte de daemontools, es que incumple los estándares si su idea de hacer bien las cosas difiere de un estándar en particular. El profesor Bernstein es un estándar por sí mismo en lo que a su software se refiere.
Esto implica que es necesario hacer algunos cambios en los comandos de instalación de sus paquetes para poder instalarlos de forma que cumplan el Estándar de la Jerarquía del Sistema de Ficheros (FHS). Muchos de los siguientes comandos se deben a este hecho.
cd admin/daemontools-0.76 : Primero, el paquete se desempaqueta en un directorio admin. Encontrarás el paquete en sí dos directorios por debajo de este.
package/compile : Este comando compila las fuentes y coloca los binarios en el directorio command.
Como vamos a instalar los binarios en /usr/sbin en lugar de crear un directorio /command que no es estándar, debemos cambiar varias rutas:
sed 's|command|usr/sbin|' boot.inittab > boot.inittab~ mv boot.inittab~ boot.inittab |
En boot.inittab, cambiamos /command/svscanboot por /usr/sbin/svscanboot.
sed -e 's|/command:/usr/local/bin:/usr/local/sbin:||' \ -e 's|command|usr/sbin|' \ -e 's|/service|/etc/service|g' svscanboot > svscanboot~ && |
Esto cambia varias rutas en el guión svscanboot para que svscan compruebe en el directorio /etc/service los demonios a lanzar, en lugar de usar el directorio por defecto /service.
cp * /usr/sbin : Debemos copiar manualmente los binarios al directorio /usr/sbin.
cat /etc/inittab boot.inittab > /etc/inittab~ mv -f /etc/inittab~ /etc/inittab |
Estos comandos añaden una línea en /etc/inittab para que init lance el guión svscanboot.
mkdir /etc/service : Este comando crea el directorio de control de daemontools, que es necesario que exista aunque esté vacío, para que daemontools funcione correctamente.
telinit Q : Este comando le dice al proceso init que lea de nuevo su fichero de configuración (inittab) y actúe en consecuencia según los cambios que se hayan producido. Se ejecuta el guión svscanboot.
El paquete daemontools contiene svscanboot, svscan, supervise, svc, svok, svstat, fghack, pgrphack, readproctitle, multilog, tai64n, tai64nlocal, setuidgid, envuidgid, envdir, softlimit and setlock . Una descripción más detallada de estos comandos puede encontrarse en http://cr.yp.to/daemontools.html.
svscan comprueba en el directorio de servicio los demonios a lanzar e inicia un proceso supervise para cada guión encontrado.
supervise lanza los guiones de inicio que le pasa svscan y monitoriza el proceso que inicia el guión, de modo que si este muere, supervise lo reinicia.
multilog es un programa de registro de eventos. Toma la salida de un demonio y la añade a cualquier número de registros.
envuidgid realiza la misma función que setuidgid, pero establece las variables de entorno $UID y $GID igual a los uid y gid de la cuenta especificada.