6.56. Sysvinit-2.86

Il pacchetto Sysvinit contiene programmi per controllare l'avvio, l'esecuzione e l'arresto del proprio sistema.

Tempo approssimativo di costruzione: 0.1 SBU
spazio su disco richiesto: 1012 KB
L'installazione dipende da: Binutils, Coreutils, GCC, Glibc e Make

6.56.1. Installazione di Sysvinit

Quando i run-level vengono modificati (per esempio quando viene arrestato il sistema), init invia segnali di terminazione a quei processi che sono stati lanciati da init medesimo e che non devono rimanere in esecuzione nel nuovo run-level. Nel fare questo, init emette messaggi quali “Sending processes the TERM signal” che sembra implicare che vengano inviati questi segnali a tutti i processi che sono in esecuzione al momento. Per evitare questo errore di interpretazione, è possibile modificare i sorgenti in modo che questo messaggio invece diventi “Sending processes started by init the TERM signal”:

sed -i 's@Sending processes@& started by init@g' \
    src/init.c

Compilare Sysvinit:

make -C src

Installare il pacchetto:

make -C src install

6.56.2. Configurazione di Sysvinit

Creare un nuovo file /etc/inittab eseguendo il seguente:

cat > /etc/inittab << "EOF"
# Begin /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

# End /etc/inittab
EOF

Lo switch -I '\033(K' dice ad agetty di inviare questa sequenza di escape al terminale prima di fare qualsiasi altra cosa. Questa sequenza di escape cambia il set di caratteri della console in uno definito dall'utente, che può essere modificato eseguendo il programma setfont. Attualmente, lo script di init della console del pacchetto LFS-Bootscripts chiama il programma setfont durante l'avvio del sistema. Inviare questa sequenza di escape è necessario per coloro che usano font di schermo non-ISO-8859-1, ma che non disturbano quelli inglesi.

6.56.3. Contenuti di Sysvinit

Programmi installati: halt, init, killall5, last, lastb (link a last), mesg, pidof (link a killall5), poweroff (link a halt), reboot (link a halt), runlevel, shutdown, sulogin, telinit (link a init), utmpdump e wall

Brevi descrizioni

halt

Normalmente invoca shutdown con il flag -h, tranne quando si trova già nel run-level 0, quindi dice al kernel di arrestare il sistema. Prima di fare questo annota nel file /var/log/wtmp che il sistema è stato arrestato

init

È la madre di tutti i processi. Legge i suoi comandi da /etc/inittab, che normalmente gli dice quali script eseguire per quale run-level, e quanti getty generare

killall5

Invia un segnale a tutti i processi, esclusi quei processi presenti nella sua stessa sessione, evitando in tal modo di uccidere la shell che sta eseguendo lo script che lo ha chiamato

last

Mostra quali utenti hanno fatto gli ultimi login (e logout), ricercando all'indietro nel file /var/log/wtmp. Può anche mostrare gli avvi e gli arresti del sistema, nonché tutti i cambi di run-level

lastb

Mostra i tentativi di login falliti, come registrati in /var/log/btmp

mesg

Controlla quali altri utenti possono inviare messaggi al terminale dell'utente corrente

mountpoint

Verifica se la directory è un punto di mount

pidof

Riporta i PID dei programmi specificati

poweroff

Dice al kernel di arrestare il sistema e spegnere il computer (si veda anche halt)

reboot

Dice al kernel di riavviare il sistema (si veda anche halt)

runlevel

Riporta i precedenti e l'attuale run-level, come registrato nell'ultimo record di run-level in /var/run/utmp

shutdown

Spegne il sistema in modo sicuro, inviando segnali a tutti i processi e notificando lo spegnimento a tutti gli utenti connessi

sulogin

Consente a root di effettuare il login. Normalmente è invocato da init quando il sistema va in modalità singolo utente

telinit

Dice a init in quale run-level entrare

utmpdump

Mostra il contenuto del file di login specificato in un formato più leggibile

wall

Invia messaggi a tutti gli utenti connessi