In CentOS 7 / RHEL 7, systemd utilizza target invece dei livelli di esecuzione. /etc/inittab
non viene più utilizzato da systemd per modificare i livelli di esecuzione.
Questa guida ti aiuterà a impostare il runlevel predefinito in CentOS 7 / RHEL 7.
Cambia il runlevel predefinito
Il runlevel predefinito può essere impostato utilizzando il systemctl comando o creando un collegamento simbolico di target a livello di esecuzione al file di destinazione predefinito.
Metodo 1
Verifichiamo il livello di esecuzione corrente emettendo il seguente comando.
systemctl get-default
Risultato:
runlevel5.target
Prima di modificare il runlevel predefinito, dobbiamo controllare i target disponibili.
systemctl list-units --type=target
L'output apparirà come di seguito.
UNIT LOAD ACTIVE SUB DESCRIPTION basic.target loaded active active Basic System cryptsetup.target loaded active active Encrypted Volumes getty.target loaded active active Login Prompts graphical.target loaded active active Graphical Interface local-fs-pre.target loaded active active Local File Systems (Pre) local-fs.target loaded active active Local File Systems multi-user.target loaded active active Multi-User System network.target loaded active active Network nfs.target loaded active active Network File System Server paths.target loaded active active Paths remote-fs.target loaded active active Remote File Systems slices.target loaded active active Slices sockets.target loaded active active Sockets swap.target loaded active active Swap sysinit.target loaded active active System Initialization timers.target loaded active active Timers LOAD = Reflects whether the unit definition was properly loaded. ACTIVE = The high-level unit activation state, i.e. generalization of SUB. SUB = The low-level unit activation state, values depend on unit type.
Cambia l'impostazione predefinita in runlevel 3 (nient'altro che un target multiutente).
systemctl set-default multi-user.target
Conferma il runlevel predefinito.
systemctl get-default
Risultato:
multi-user.target
Riavvia e controlla.
reboot
Metodo 2
Potresti notare un output sotto quando systemctl set-default multi-us er.target viene emesso il comando.
rm '/etc/systemd/system/default.target' ln -s '/usr/lib/systemd/system/multi-user.target' '/etc/systemd/system/default.target'
Ciò che viene eseguito dal comando non è altro che creare un collegamento simbolico delle destinazioni del livello di esecuzione al file di destinazione predefinito.
Controlla il livello attuale.
systemctl get-default
Risultato:
multi-user.target
Prima di creare il collegamento simbolico, elenchiamo i file nella directory systemd.
ls /lib/systemd/system/runlevel*target -l
L'output sarà simile al seguente:
lrwxrwxrwx. 1 root root 15 Aug 3 13:44 /lib/systemd/system/runlevel0.target -> poweroff.target lrwxrwxrwx. 1 root root 13 Aug 3 13:44 /lib/systemd/system/runlevel1.target -> rescue.target lrwxrwxrwx. 1 root root 17 Aug 3 13:44 /lib/systemd/system/runlevel2.target -> multi-user.target lrwxrwxrwx. 1 root root 17 Aug 3 13:44 /lib/systemd/system/runlevel3.target -> multi-user.target lrwxrwxrwx. 1 root root 17 Aug 3 13:44 /lib/systemd/system/runlevel4.target -> multi-user.target lrwxrwxrwx. 1 root root 16 Aug 3 13:44 /lib/systemd/system/runlevel5.target -> graphical.target lrwxrwxrwx. 1 root root 13 Aug 3 13:44 /lib/systemd/system/runlevel6.target -> reboot.target
Come per il passaggio precedente, l'attuale livello di esecuzione predefinito 3. Emettere il comando seguente per creare un collegamento simbolico di runlevel5.target al file default.target.
ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target
o
ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
Controlla di nuovo il livello attuale.
systemctl get-default
Risultato:
runlevel5.target
Ora il runlevel predefinito è 5 (modalità grafica), riavvia il server e controllalo.
reboot
Conclusione
È tutto. Spero che questo post ti abbia aiutato a cambiare il runlevel predefinito in CentOS 7 / RHEL 7. Accogliamo con favore i tuoi commenti.