Installer Sysvinit

Installation de Sysvinit

Quand vous modifiez les niveaux d'exécution (par exemple quand vous allez arrêter votre système), le programme init envoie les signaux TERM et KILL à tous les processus qu'init a lancés. Mais init affiche un message à l'écran disant "sending all processes the TERM signal" (envoi du signal TERM à tous les processus), et la même chose pour le signal KILL. Ce message signifie qu'init envoie ce signal à tous les processus actuellement en train de tourner, ce qui n'est en fait pas le cas. Pour éviter cette confusion, vous pouvez appliquer le patch sysvinit trouvé sur le site FTP de LFS à sysvinit, qui modifie le message dans le fichier shutdown.c et fait afficher "sending all processes started by init the TERM signal" (envoi du signal TERM à tous les processus lancés par init).

Appliquez le patch en lançant la commande suivante:

patch -Np1 -i ../sysvinit-2.78.patch

Installez Sysvinit en lançant les commandes suivantes:


cd src &&
make &&
make install

Contenu

Le package Sysvinit contient les programmes pidof, last, lastb, mesg, utmpdump, wall, halt, init, killall5, poweroff, reboot, runlevel, shutdown, sulogin et telinit.

Description

pidof

pidof trouve les id des processus (pid) des programmes spécifiés et affiche ces id sur la sortie standard.

last

last recherche en arrière dans le fichier /var/log/wtmp (ou le fichier désigné par l'option -f) et affiche une liste de tous les utilisateurs s'étant connectés (et déconnectés) depuis la création du fichier.

lastb

lastb est identique à last, sauf que, par défaut, il affiche un journal du fichier /var/log/btmp, qui contient toutes les tentatives de connexion ayant échouées.

mesg

mesg contrôle l'accès à votre terminal par d'autres. Typiquement, ce programme est utilisé pour autoriser ou interdire à d'autres utilisateurs d'écrire sur votre terminal.

utmpdump

utmpdumps affiche le contenu d'un fichier (en général /var/run/utmp) sur la sortie standard dans un format compréhensible par l'utilisateur.

wall

wall envoie un message à toutes les personnes connectées ayant leur permission mesg positionnée à yes.

halt

halt note que le système est en train de s'arrêter dans le fichier /var/log/wtmp, puis dit au noyau soit de s'arrêter, soit de redémarrer, ou d'éteindre le système. Si halt ou reboot est appelé quand le système n'est pas dans un niveau d'exécution de 0 ou 6, shutdown sera appelé à la place (avec une option -h ou -r).

init

init est le père de tous les processus. Son rôle principal est de créer les processus à partir d'un script enregistré dans le fichier /etc/inittab. Ce fichier a en général des entrées sur chaque ligne indiquant à init d'engendrer des getty, pour que l'utilisateur puisse se connecter. Il contrôle aussi les processus autonomes requis par un système particulier.

killall5

killall5 est la commande killall de SystemV. Il envoie un signal à tous les processus, sauf les processus dans sa propre session, de manière à ne pas tuer le shell qui fait tourner le script qui l'a appelé.

poweroff

poweroff est équivalent à shutdown -h -p now. Il arrête l'ordinateur et l'éteint (si un BIOS compatible APM est utilisé, et qu'APM est activé dans le noyau).

reboot

reboot est équivalent à shutdown -r now. Il redémarre l'ordinateur.

runlevel

runlevel lit le fichier utmp du système (typiquement, /var/run/utmp) pour localiser l'enregistrement du niveau d'exécution, puis écrit les niveaux d'exécution du système, le précédent et l'actuel, sur la sortie standard, séparés par un seul espace.

shutdown

shutdown arrête le système de façon sécurisée. Tous les utilisateurs connectés sont avertis que le système va s'arrêter, et la connexion est bloquée.

sulogin

sulogin est invoqué par init quand le système passe en mode mono-utilisateur (ceci est réalisé par une entrée dans /etc/inittab). init tente également d'exécuter sulogin quand l'option -b lui est passée par le gestionnaire de démarrage (comme LILO).

telinit

telinit envoie les signaux appropriés à init, lui indiquant le niveau d'exécution sous lequel passer.