Le paquet Sysvinit contient des programmes de contrôle du démarrage, de l'exécution et de l'arrêt de votre système.
Sysvinit-2.85 contient un bogue de « dépassement de tampon ». Dans certaines conditions, il modifie les valeurs des variables d'environnement. Corrigez ceci avec :
patch -Np1 -i ../sysvinit-2.85-proclen-1.patch
Lorsque les niveaux d'exécution changent (par exemple, lors de l'arrêt du système), init envoit des signaux de fin aux processus qu'init a lui-même lancé et qui ne devraient plus s'exécuter dans le nouveau niveau d'exécution. En faisant ceci, init affiche des messages comme « Sending processes the TERM signal » (NdT : Envoi du signal TERM aux processus) ce qui semble impliquer qu'il envoie ce signal à tous les processus en cours d'exécution. Pour éviter cette mauvaise interprétation, modifiez les sources pour que ce message soit remplacé par « Sending processes started by init the TERM signal » (NdT : Envoi du signal TERM aux processus lancés par init) :
sed -i 's@Sending processes@& started by init@g' \ src/init.c
Compilez le paquet :
make -C src
Puis, installez le paquet :
make -C src install
Créez un nouveau fichier /etc/inittab
en lançant ce
qui suit :
cat > /etc/inittab << "EOF" # Début /etc/inittab id:3:initdefault: si::sysinit:/etc/rc.d/init.d/rc sysinit l0:0:wait:/etc/rc.d/init.d/rc 0 l1:S1:wait:/etc/rc.d/init.d/rc 1 l2:2:wait:/etc/rc.d/init.d/rc 2 l3:3:wait:/etc/rc.d/init.d/rc 3 l4:4:wait:/etc/rc.d/init.d/rc 4 l5:5:wait:/etc/rc.d/init.d/rc 5 l6:6:wait:/etc/rc.d/init.d/rc 6 ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now su:S016:once:/sbin/sulogin 1:2345:respawn:/sbin/agetty -I '\033(K' tty1 9600 2:2345:respawn:/sbin/agetty -I '\033(K' tty2 9600 3:2345:respawn:/sbin/agetty -I '\033(K' tty3 9600 4:2345:respawn:/sbin/agetty -I '\033(K' tty4 9600 5:2345:respawn:/sbin/agetty -I '\033(K' tty5 9600 6:2345:respawn:/sbin/agetty -I '\033(K' tty6 9600 # Fin /etc/inittab EOF
L'option -I '\033(K'
indique à
agetty d'envoyer cette séquence d'échappement au terminal
avant de faire quoi que ce soit d'autres. Cette séquence d'échappement bascule
l'ensemble de caractères de la console sur un défini par l'utilisateur, qui
peut être modifié en exécutant le programme setfont. L
script de démarrage console du paquet LFS-Bootscripts appelle
le programme setfont au lancement du système. L'envoi de
cette séquence d'échappement est nécessaire pour les personnes utilisant des
polices autres qu'ISO 8859-1 mais n'a aucun effet sur les personnes de
langue anglaise.
Lance normalement shutdown avec l'option
-h
, sauf s'il est déjà au niveau d'exécution 0, puis il
demande au noyau d'arrêter le système. Mais, tout d'abord, il note dans le
fichier /var/log/wtmp
que le système est en cours d'arrêt
Le premier processus à être exécuté lorsque le noyau a initialisé le matériel et qui prend la main sur le processus de démarrage et démarre tous les processus qui lui ont été indiqués
Envoie un signal à tous les processus sauf les processus de sa propre session, de façon à ne pas tuer le shell ayant lancé le script qui l'a appelé
Affiche le dernier utilisateur connecté (et déconnecté) en cherchant dans
le fichier /var/log/wtmp
. Il peut aussi afficher les démarrages et arrêts du système ainsi que les changements de niveaux d'exécution
Affiche les tentatives échouées de connexions tracées dans
/var/log/btmp
Contrôle si les autres utilisateurs peuvent envoyer des messages au terminal de l'utilisateur courant
Indique le PID des programmes précisés
Indique au noyau d'arrêter le système et de couper l'ordinateur (voir halt)
Indique au noyau de redémarrer le système (voir halt)
Indique le niveau d'exécution actuel et précédent comme précisé dans
l'enregistrement du dernier niveau d'exécution dans
/var/run/utmp
Arrête proprement le système en le signalant à tous les processus et à tous les utilisateur connectés
Permet la connexion du superutilisateur. Il est normalement appelé par init lorsque le système passe en mono-utilisateur
indique à init dans quel niveau d'exécution entrer
Affiche le contenu du fichier de connexion donné dans un format plus agréable
Écrit un message à l'intention de tous les utilisateurs connectés