Le package daemontools remplace inetd ou xinetd. La principale raison pour l'utiliser vient du fait qu'il est recommandé de l'utiliser avec qmail et djbdns.
Téléchargement (HTTP): http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
Téléchargement (FTP): ftp://ftp.lug.udel.edu/pub/network/mail/qmail/daemontools-0.76.tar.gz
Taille de téléchargement: 36 Ko
Estimation de l'espace disque requis: 1,8 Mo
Estimation du temps de construction: 0,05 SBU
Installez daemontools en lançant les commandes suivantes :
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 |
Le package daemontools n'a pas de pages man, donc installez ce package si vous voulez avoir une aide en ligne pour les programmes daemontools :
tar xzvf daemontools-0.76-man.tar.gz && cp daemontools-man/*.8 /usr/share/man/man8 |
La première chose à comprendre pour l'installation de n'importe quel package écrit par Daniel J. Bernstein, et ceci inclut qmail, djbdns et ucspi-tcp en plus de daemontools, est qu'il veux ignorer les standards si son idée de la bonne façon de faire diffère d'un standard particulier. Le professeur Bernstein est un standard en lui-même quand cela touche son propre logiciel.
Il est donc nécessaire de faire quelques modifications de façon à ce que ce soit compatible avec le FHS (Filesystem Hierarchy Standard, ou Standard de la structure du système de fichiers). La plupart des commandes suivantes est dûe à cette difficulté.
cd admin/daemontools-0.76 : Tout d'abord, le package est déballé dans un répertoire admin. Vous trouverez les packages actuels à deux niveaux de répertoire en dessous de ceci.
package/compile : Cette commande compile le code source et prépare les binaires.
Comme nous installons les binaires dans /usr/sbin au lieu de créer un répertoire /command non standard, plusieurs chemins doivent être modifiés :
sed 's|command|usr/sbin|' boot.inittab > boot.inittab~ mv boot.inittab~ boot.inittab |
Dans boot.inittab, /command/svscanboot est modifié par /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~ && |
Ici, différents chemins sont ajustés dans le script svscanboot. Dans notre configuration, svscan vérifiera le répertoire /etc/service au lieu de /service pour les démons à lancer.
cp * /usr/sbin : Nous devons copier manuellement les binaires dans le répertoire /usr/sbin.
cat /etc/inittab boot.inittab > /etc/inittab~ mv -f /etc/inittab~ /etc/inittab |
mkdir /etc/service : Cette commande crée le répertoire de contrôle des daemontools, qui, même vide, doit exister pour que les daemontools puissent fonctionner correctement.
telinit Q : Cette commande demande au processus init de relire son fichier de configuration (inittab) et d'agir selon les changements qui y ont été apportés. Le script svscanboot est lancé.
Le package daemontools contient svscanboot, svscan, supervise, svc, svok, svstat, fghack, pgrphack, readproctitle, multilog, tai64n, tai64nlocal, setuidgid, envuidgid, envdir, softlimit et setlock. Des descriptions plus détaillées peuvent être touvées sur http://cr.yp.to/daemontools.html.
svscanboot est un script appellant svscan et renvoyant la sortie sur readproctitle.
svscan vérifie dans le répertoire service les démons à lancer et lance un processus supervise pour chaque script qu'il trouve en cours d'exécution.
supervise lance le script run que svscan lui a donné et surveille les processus que le script lance, de façon à ce que, si un d'entre eux meure, supervise puisse le relancer.
svc envoie des signaux aux processus lancés à partir de supervise.
svok vérifie que supervise tourne dans le répertoire qui lui a été donné.
svstat affiche l'état des processus en cours de surveillance par supervise.
fghack empêche les processus de se mettre en tâche de fond.
pgrphack lance un processus dans un groupe de processus séparé.
readproctitle affiche les entrées du journal en sortie de ps.
multilog est un programme d'enregistrements (logging). Il prend la sortie d'un démon et l'ajoute dans un certain nombre de journaux.
tai64n est un programme de génération d'horodatage.
tai64nlocal convertit la sortie de tai64n en format lisisble par un humain.
setuidgid lance un programme spécifié sous un UID et GID donnés.
envuidgid réalise la même fonction que setuidgid, mais positionne les variables d'environnement UID et GID à la même valeur que l'UID et le GID du compte spécifié.
envdir lance un programme donné avec des variables d'environnement spécifiées par fichiers d'un répertoire.
softlimit autorise la mise en place de limite de ressources pour un programme donné.
setlock verrouille un fichier et lance un programme.
Précédent | Sommaire | Suivant |
D.J. Bernstein's Utilities | Niveau supérieur | ucspi-tcp-0.88 |