Instalación de daemontools

# solo está probado con la versión 0.76, pero es más fácil modificarlo si está así
export DTVERSION=0.76

# bajo el paquete
mkdir -pv ${HOME}/soft
cd ${HOME}/soft
wget http://cr.yp.to/daemontools/daemontools-${DTVERSION}.tar.gz

# bajo el patch para procesar las señales QUIT/USR1/USR2
wget http://thedjbway.b0llix.net/patches/daemontools-${DTVERSION}.sigq12.patch


# creo el /package si no existe
sudo mkdir -pv /package
sudo chmod -v 1755 /package

# abro el paquete
cd /package
sudo tar xvzf ${HOME}/soft/daemontools-${DTVERSION}.tar.gz
cd admin/daemontools-${DTVERSION}

# aplico (opcionalmente) el patch para procesar las señales QUIT/USR1/USR2
sudo patch -p1 < ${HOME}/soft/daemontools-${DTVERSION}.sigq12.patch

# modifico error.h para que compile con los glibc nuevos
sudo sed -i.ORI -es/^extern\ int\ errno\;/#include\ \<errno.h\>/ src/error.h

# compilo e instalo
sudo package/install

Esto creó un directorio /service donde se pueden symlinkear directorios de servicios para monitorear.

Además agregó una línea al /etc/inittab que (al menos en Linux con inittab) es así:

SV:123456:respawn:/command/svscanboot

en ubuntu nuevo con upstart -y sospecho que en cualquier caso que no encuentre un /etc/inittab) agregó una línea en /etc/rc.local

csh -cf '/command/svscanboot &'

en el caso específico de ubuntu hardy, el /etc/rc.local tiene un exit 0 antes de esta línea, con lo cual nunca se ejecuta, lo recomendable es configurar el svscan en el upstart.

<!> OJO <!> : una de los side-effects de esto en ubuntu es que el /etc/rc.local deja de ser ejecutable. En general este archivo no se usa, pero por si hay algo que realmente se tiene que ejecutar allí, por si acaso hay que hacer:

sudo chmod +x /etc/rc.local

/!\ En general está bueno instalar también tai64nfrac /!\

Sistemas con Upstart

Esto debería ser todo. Sin embargo, en los Ubuntu más nuevos, que usan upstart esto no arranca porque el último paso modificó el /etc/inittab que en upstart es irrelevante...

Saqué info de http://www.phragmunkee.com/2006/12/28/ubuntu-610-edgy-eft-experience/ y de http://fxp0.org.ua/2007/apr/21/svscanboot-and-upstart-ubuntu-feisty/ para arreglar esto:

sudo sh -c 'cat > /etc/event.d/svscan' <<EOF
# svscan
# djb daemontools
#


start on runlevel 2
start on runlevel 3
start on runlevel 4
start on runlevel 5

stop on runlevel 0

stop on runlevel 1

stop on runlevel 6

respawn
exec /command/svscanboot
EOF

# levanto el servicio
sudo start svscan

Solaris y Ultrix

En Solaris y en Digital, la línea del /etc/inittab queda igual que en Linux... pero (al menos en Solaris 7 y 8 y en el Digital del server1 de la ACE) no anda. Hay que editarla y dejarla así:

SV:123456:respawn:/command/svscanboot </dev/null

luego correr el comando init q para que relea la inittab

Según DJB se trata de un moco del /bin/sh de Solaris.

En Solaris, al hacer package/install podría dar el siguiente error:

./makelib byte.a byte_chr.o byte_copy.o byte_cr.o byte_diff.o \
        byte_rchr.o fmt_uint.o fmt_uint0.o fmt_ulong.o scan_ulong.o str_chr.o \
        str_diff.o str_len.o str_start.o
./makelib: ar: not found

en ese caso hay que agregar /usr/ccs/bin en el PATH.

man pages

export DTVERSION=0.76
# bajo las manpages
cd ${HOME}/soft
wget http://smarden.org/pape/djb/manpages/daemontools-${DTVERSION}-man.tar.gz
tar xvzf daemontools-${DTVERSION}-man.tar.gz
cd daemontools-man
gzip *.8
sudo cp *.8.gz /usr/share/man/man8

tai64nfrac

Un programita muy simple que permite convertir los labels que genera multilog a un epoch de unix (segundos desde las 00:00:00 del 1/1/1970) es el tai64nfrac de Russ Allbery. Para instalarlo:

export T64NFVERSION=1.4
# bajo el paquete
cd ${HOME}/soft
wget http://archives.eyrie.org/software/system/tai64nfrac-${T64NFVERSION}.tar.gz

# lo abro
tar xvfz tai64nfrac-${T64NFVERSION}.tar.gz 
cd tai64nfrac-${T64NFVERSION}

# compilo
make

# instalo
sudo make install

Utilización

Ver UtilizaciónDeDaemontools

InstalaciónDeDaemontools (última edición 2010-03-08 09:59:03 efectuada por MarianoAbsatz)

Edit and actions menu

  • Página inmutable
  • Información
  • Adjuntos