Systemd ha sostituito sysVinit come gestore dei servizi predefinito in RHEL 7. Alcuni dei comandi sysVinit sono stati collegati in modo simbolico alle loro controparti RHEL 7, tuttavia questo alla fine sarà deprecato a favore dei comandi systemd standard in futuro.
Runlevel di sistema V/s SysVinit
Ecco un confronto tra i runlevel di SysVinit V/s target di sistema.
Runlevel Sysvinit | Obiettivo sistemato | Funzione |
---|---|---|
0 | runlevel0.target, poweroff.target | Arresto/spegnimento del sistema |
1, s, singolo | runlevel1.target, rescue.target | Modalità utente singolo |
2, 4 | runlevel2.target, runlevel4.target, multiutente.target | Livelli di esecuzione definiti dall'utente/specifici del sito. Per impostazione predefinita, identico a 3. |
3 | runlevel3.target, multiutente.target | Modalità multiutente, non grafica, solo console di testo |
5 | runlevel5.target, graphical.target | Modalità grafica multiutente |
6 | runlevel6.target, reboot.target | Riavvia |
emergenza | emergency.target | Modalità di emergenza |
Cambiare i runlevel con systemd
La destinazione del livello di esecuzione può essere modificata utilizzando il comando systemctl isolate :
# systemctl isolate multi-user.target
Per visualizzare quali target sono disponibili puoi emettere l'opzione list-units con il tipo target
# systemctl list-units --type=target
Il livello di esecuzione 3 è emulato da multi-user.target. Questo viene fatto tramite un collegamento simbolico e può essere utilizzato in modo intercambiabile
# systemctl isolate multi-user.target # systemctl isolate runlevel3.target # ls -l /usr/lib/systemd/system/runlevel3.target lrwxrwxrwx 1 root root 17 Oct 18 11:41 /usr/lib/systemd/system/runlevel3.target -> multi-user.target
Il livello di esecuzione 5 è emulato da graphical.target. Questo viene fatto anche tramite collegamento simbolico e può essere utilizzato in modo intercambiabile
# systemctl isolate graphical.target # systemctl isolate runlevel5.target # ls -l /usr/lib/systemd/system/runlevel5.target lrwxrwxrwx 1 root root 16 Oct 18 11:41 /usr/lib/systemd/system/runlevel5.target -> graphical.target
Cambiare il runlevel predefinito
Il runlevel predefinito può essere modificato utilizzando l'opzione set-default.
# systemctl set-default multi-user.target
Per ottenere l'impostazione predefinita attualmente impostata, puoi utilizzare l'opzione get-default.
# systemctl get-default
Il runlevel predefinito in systemd può anche essere impostato utilizzando il metodo seguente (non consigliato però).
# ln -sf /lib/systemd/system/[desired].target /etc/systemd/system/default.target
La destinazione predefinita può anche essere impostata nella riga del kernel durante l'avvio aggiungendo la seguente opzione:
systemd.unit=multi-user.target