daemontools

6 aprile 2018 Roberto Puzzanghera 0 commenti

daemontools è una collezione di strumenti per gestire servizi UNIX. Monitora i servizi di qmail e salva i messaggi di errore in uno o più logs.

Su Debian e Ubuntu è necessario installare questi pacchetti aggiuntivi:

apt install build-essential autoconf automake libmariadb-dev default-libmysqlclient-dev

Questi sono invece i pacchetti necessari su Ubuntu 22.04:

apt install build-essential autoconf automake libmariadb-dev libmariadb-dev-compat

Innanzitutto creiamo  la cartella che ospiterà qmail, daemontools e ucspi-tcp:

mkdir /var/qmail

In questa guida supporrò che tutti i pacchetti sorgenti siano stati scaricati nella cartella /usr/local/src.

cd /usr/local/src
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
wget https://notes.sagredo.eu/files/qmail/patches/daemontools/daemontools-0.76.errno.patch
wget https://notes.sagredo.eu/files/qmail/patches/daemontools/multilog_filesize_limit.patch

La patch multilog_filesize_limit (grazie a Sam Tang) consente di estendere il limite delle dimensioni del log file fino a 100MB (per default è 16MB).

cd /var/qmail
tar xzf /usr/local/src/daemontools-0.76.tar.gz
cd admin
ln -s daemontools-0.76 daemontools
chmod 1755 .

Dunque abbiamo daemontools in  /var/qmail/admin/daemontools

Ora applichiamo le patch e installiamo:

cd daemontools
patch -p1 < /usr/local/src/daemontools-0.76.errno.patch
patch -p1 < /usr/local/src/multilog_filesize_limit.patch
package/install

Nota che il file /etc/inittab è stato modificato per consentire il lancio di scanboot all'avvio!

Aggiungere ora il servizio "clear", che è utile quando si deve pulire la riga  readproctitle service errors:

cd ../
mkdir clear
touch clear/down

cat > clear/run << __EOF__
#!/bin/sh
yes '' | head -4000 | tr '\n' .
__EOF__

chmod +x clear/run

Infine, dal momento che tutte quelle cartelle nella directory principale / mi disturbano non poco:

ln -s /var/qmail/admin/daemontools/command /command

In questo modo abbiamo quasi tutto sotto /var/qmail, ad eccezione di /command e /service che sono solo dei link simbolici.

Aggiungi un commento