Translation(s): English - Français - Italiano - Русский


BootProcess > init


Init è il primo programma eseguito dopo che il sistema è avviato e continua a funzionare come processo numero 1 fino a quando il sistema verrà fermato. Il compito di init è di avviare altri programmi che sono essenziali per il funzionamento del sistema, tutti gli altri processi discendono da init.

Panoramica

Il processo di inizializzazione del sistema è gestito dal demone di init. In squeeze e rilasci precedenti tale demone è fornito dal pacchetto sysvinit e non sono supportate alternative. In wheezy il demone init predefinito è ancora sysvinit, ma è disponibile un'"anteprima tecnologica" di systemd. In jessie e stretch il sistema init predefinito è systemd, ma è supportato il passaggio a sysvinit.

A partire da jessie solo systemd è pienamente supportato; sysvinit è supportato per la maggior parte ma ai pacchetti Debian non viene richiesto di fornire script di avvio per sysvinit. Anche runit è pacchettizzato, ma non ha ricevuto lo stesso livello di test e supporto degli altri e attualmente non è supportato come PID 1.

Determinare il sistema init

In generale si può determinare quale sistema init è installato controllando se il file /sbin/init è un collegamento simbolico. Se non è un collegamento simbolico, allora probabilmente è in uso sysvinit. Se è un collegamento simbolico che punta a /lib/systemd/systemd, allora è in uso systemd. Se è un collegamento simbolico che punta a /lib/sysvinit/init, allora è in unso sysvinit.

Se si sospetta che il sistema init possa essere cambiato senza un riavvio, si può anche usare cat /proc/1/comm per vedere quale nome di comando è stato usato per il demone init durante l'avvio più recente.

Cambiare il sistema init

In stretch si può passare da systemd a sysvinit seguendo questi passi:

  1. apt-get install sysvinit-core

  2. riavviare

Per la maggior parte del tempo in cui stretch era testing si poteva passare da systemd a runit seguendo questi passi:

  1. apt-get install runit-systemd

  2. riavviare
  3. apt-get install runit-init

  4. riavviare nuovamente

Tuttavia il pacchetto runit-init è stato rimosso da Debian poco tempo prima del rilascio di stretch. Attualmente runit non è supportato come sistema init in Debian, anche se ciò può cambiare in future e potrebbe funzionare in testing o unstable; tuttavia ogni tentativo di utilizzarlo viene fatto a proprio rischio e pericolo. (Vedere il bug 861536 per la discussione sulla rimozione.)

Configurazione di sysvinit

Il file di configurazione inittab dice ad init cosa fare, in particolare contiene le righe:

id:2:initdefault:

si::sysinit:/etc/init.d/rcS

l2:2:wait:/etc/init.d/rc 2

Che indica al file /etc/init.d/rcS di eseguire l'inizializzazione degli script (in /etc/rcS.d/*), poi gli script per il runlevel richiesto (in /etc/rcS.[0-9]/*).

Si veda anche