Si on veut de meilleures performances pour notre serveur de méls, il va falloir installer des programmes écrits aussi par Dan Bernstein : daemontools (syslog et gestion des signaux pour les daemons), checkpassword (pop3d), ucspi-tcp (inetd + TCP Wrapper)...
Il faut dans un premier temps récupérer et décompresser les archives ftp://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz et ftp://cr.yp.to/daemontools/daemontools-0.70.tar.gz et les installer :
# make # make setup check #
pour chacune des deux archives. Pour tester daemontools, on peut essayer :
# ./rts > rts.out # cmp rts.out rts.exp #
si rien ne s'affiche, c'est gagné. Il ne reste plus qu'a vérifier les dates :
# date | ./tai64n | ./tai64nlocal 2001-05-04 09:23:14.180154500 Fri May 4 09:23:14 CEST 2001 # date | sh -c './multilog t e 2>&1' | ./tai64nlocal 2001-05-04 09:23:15.605339500 Fri May 4 09:23:15 CEST 2001 #
Les dates de début et de fin devraient être sensiblement identiques. Il ne reste plus qu'à informer l'auteur que notre installation a réussi (remplacer le nom) :
# ( echo 'Mathieu DECORE'; cat VERSION systype \ direntry.h fork.h hasflock.h hasmkffo.h hassgact.h \ hasshsgr.h haswaitp.h iopause.h select.h uint64.h ) \ | mail djb-sysdeps@cr.yp.to #
Il ne reste plus qu'à créer un script qui lancera qmail au démarrage. Le fichier /var/qmail/rc se charge de le faire, mais s'il n'est pas satisfaisant il en existe d'autre versions dans le répertoire /var/qmail/boot.
Pour lancer qmail au démarrage, il faut un script comme celui qu'on trouvé à l'adresse suivante : http://Web.InfoAve.net/~dsill/qmail-script-dt61.exe. Ce script est à recopier sous le nom de qmail dans un des répertoires suivants (suivant la distribution et la météo du jour) : /etc/init.d, /sbin/init.d ou /etc/rc.d/init.d. Il ne reste plus qu'à créer les liens symboliques nécessaires à partir du répertoire de boot :
# ln -s qmail rc0.d/K30qmail # ln -s qmail rc1.d/K30qmail # ln -s qmail rc2.d/S80qmail # ln -s qmail rc3.d/S80qmail # ln -s qmail rc4.d/S80qmail # ln -s qmail rc5.d/S80qmail # ln -s qmail rc6.d/K30qmail #
Pour terminer, il faut créer les scripts supervise comme suit (les daemontools sont disponibles à partir de l'adresse http://cr.yp.to/daemontools/install.html) :
# mkdir -p /var/qmail/supervise/qmail-send/log # mkdir -p /var/qmail/supervise/qmail-smtpd/log # chmod +t /var/qmail/supervise/qmail-send # chmod +t /var/qmail/supervise/qmail-smtpd # cat << EOF > /var/qmail/supervise/qmail-send/run #!/bin/sh exec /var/qmail/rc EOF # cat << EOF > /var/qmail/supervise/qmail-send/log/run #!/bin/sh exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail EOF # echo 20 > /var/qmail/control/concurrencyincoming # chmod 644 /var/qmail/control/concurrencyincoming # cat << EOF > /var/qmail/supervise/qmail-smtpd/run #!/bin/sh QMAILDUID=`id -u qmaild` NOFILESGID=`id -g qmaild` MAXSMTPD=`cat /var/qmail/control/concurrencyincoming` exec /usr/local/bin/softlimit -m 2000000 \ /usr/local/bin/tcpserver -v -p -x /etc/tcp.smtp.cdb -c "\$MAXSMTPD" \ -u "\$QMAILDUID" -g "\$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 EOF # cat << EOF > /var/qmail/supervise/qmail-smtpd/log/run #!/bin/sh exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd EOF # chmod 755 /var/qmail/supervise/qmail-send/run # chmod 755 /var/qmail/supervise/qmail-send/log/run # chmod 755 /var/qmail/supervise/qmail-smtpd/run # chmod 755 /var/qmail/supervise/qmail-smtpd/log/run # mkdir -p /var/log/qmail/smtpd # chown qmaill /var/log/qmail /var/log/qmail/smtpd # echo '127.:allow,RELAYCLIENT=""' >>/etc/tcp.smtp # /etc/init.d/qmail cdb #