Le versioni precedenti di CentOS/RHEL Linux utilizzano Livelli di esecuzione init SysV . Questi livelli di esecuzione hanno fornito la possibilità di utilizzare i sistemi per scopi diversi e avviare solo i servizi necessari per uno scopo specifico, a un livello di esecuzione specifico. In RHEL 7, i livelli di esecuzione sono stati sostituiti con unità target systemd . Le unità target hanno un .target estensione e simili ai livelli di esecuzione, le unità target consentono di avviare un sistema con solo i servizi necessari per uno scopo specifico.
RHEL 7 è distribuito con una serie di target predefiniti simili ai livelli di esecuzione nelle versioni precedenti di RedHat Linux. Il comando seguente restituisce il percorso assoluto di queste unità di destinazione predefinite a livello di esecuzione del sistema:
# find / -name "runlevel*.target" /usr/lib/systemd/system/runlevel5.target /usr/lib/systemd/system/runlevel0.target /usr/lib/systemd/system/runlevel6.target /usr/lib/systemd/system/runlevel1.target /usr/lib/systemd/system/runlevel2.target /usr/lib/systemd/system/runlevel3.target /usr/lib/systemd/system/runlevel4.target
Confronto tra i livelli di esecuzione SysV e le unità target
Livello di esecuzione | Unità target | Descrizione |
---|---|---|
0 | runlevel0.target, poweroff.target | Spegni e spegni |
1 | runlevel1.target, rescue.target | Imposta una shell di ripristino |
2,3,4 | runlevel[234].target, multiutente.target | Imposta una shell multiutente non grafica |
5 | runlevel5.target, graphical.target | Imposta una shell grafica multiutente |
6 | runlevel6.target, reboot.target | Spegni e riavvia il sistema |
Ogni file runlevel[0123456].target è un collegamento simbolico agli equivalenti della destinazione di avvio del sistema. Ad esempio:
# cd /usr/lib/systemd/system # ls -l runlevel* lrwxrwxrwx. 1 root root 15 Sep 23 19:52 runlevel0.target -> poweroff.target lrwxrwxrwx. 1 root root 13 Sep 23 19:52 runlevel1.target -> rescue.target lrwxrwxrwx. 1 root root 17 Sep 23 19:52 runlevel2.target -> multi-user.target lrwxrwxrwx. 1 root root 17 Sep 23 19:52 runlevel3.target -> multi-user.target lrwxrwxrwx. 1 root root 17 Sep 23 19:52 runlevel4.target -> multi-user.target lrwxrwxrwx. 1 root root 16 Sep 23 19:52 runlevel5.target -> graphical.target lrwxrwxrwx. 1 root root 13 Sep 23 19:52 runlevel6.target -> reboot.target
1. Visualizza unità target predefinita/attuale
Utilizzare il comando seguente per visualizzare l'unità di destinazione utilizzata per impostazione predefinita:
# systemctl get-default graphical.target
Il obiettivo.grafico l'unità di destinazione indica che il sistema è in esecuzione in uno stato grafico multiutente. Questo è simile all'esecuzione del livello 5 in un sistema di inizializzazione SysV. Puoi verificarlo utilizzando il vecchio comando runlevel :
# runlevel N 5
L'unità di destinazione predefinita è rappresentata da /etc/systemd/system/default.target file. Questo file è un collegamento simbolico all'unità di destinazione predefinita corrente. Ad esempio :
# ls -lrt /etc/systemd/system/default.target lrwxrwxrwx. 1 root root 36 Sep 23 20:01 /etc/systemd/system/default.target -> /lib/systemd/system/graphical.target
2. elenca i target attualmente attivi
Per visualizzare le unità target attualmente attive sul tuo sistema usa il comando sotto.
# systemctl list-units --type target 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-online.target loaded active active Network is Online network.target loaded active active Network nfs-client.target loaded active active NFS client services nss-user-lookup.target loaded active active User and Group Name Lookups paths.target loaded active active Paths remote-fs-pre.target loaded active active Remote File Systems (Pre) 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. 19 loaded units listed. Pass --all to see loaded but inactive units, too. To show all installed unit files use 'systemctl list-unit-files'.
3. Modifica l'unità target predefinita
Utilizzare il comando seguente per modificare l'unità di destinazione predefinita (ad esempio, per modificare l'unità predefinita in multi-user.target):
# systemctl set-default multi-user.target Removed symlink /etc/systemd/system/default.target. Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.
Si noti che il collegamento simbolico default.target è cambiato e ora punta all'unità multi-user.target:
# ls -lrt /etc/systemd/system/default.target lrwxrwxrwx. 1 root root 41 Sep 24 11:58 /etc/systemd/system/default.target -> /usr/lib/systemd/system/multi-user.target
4. Modifica l'unità di destinazione del sistema attualmente attiva
Il impostazione predefinita comando non cambia lo stato corrente del sistema. Per modificare la destinazione di sistema attualmente attiva (ad esempio, per modificare la destinazione di sistema attualmente attiva in multi-user.target):
# systemctl isolate multi-user.target
Questo comando è simile all'utilizzo di telinit [runlevel] per modificare il livello di esecuzione corrente. Questo comando telinit esiste ancora ma è incluso solo per motivi di compatibilità.
Puoi anche utilizzare il seguente comando per inserire l'unità target predefinita:
# systemctl default
Questo equivale al seguente comando:
# systemctl isolate default.targetCentOS / RHEL 7:riferimento alla riga di comando di systemd (cheat sheet)
CentOS / RHEL 7:come modificare i runlevel (target) con systemd
CentOS / RHEL 7:guida per principianti alle unità di servizio di systemd
CentOS / RHEL 7:Guida per principianti a systemd