GNU/Linux >> Linux Esercitazione >  >> Cent OS

CentOS / RHEL 7:Guida per principianti agli obiettivi di sistema (sostituzione dei livelli di esecuzione init di SysV)

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.target
CentOS / 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


Cent OS
  1. Modifica il runlevel predefinito in CentOS 7 / RHEL 7

  2. CentOS / RHEL 7:Guida per principianti a firewalld

  3. CentOS / RHEL 7:come modificare i runlevel (target) con systemd

  4. Guida per principianti al montaggio automatico dei file system in CentOS / RHEL

  5. Guida per principianti a NFS in CentOS / RHEL

Come installare/aggiornare Systemd su RHEL/CentOS 7

Come eseguire Google Chrome come root su CentOS 7 / RHEL 7

Come configurare uno Chef 12 su CentOS 7 / RHEL 7

Come modificare il runlevel corrente/predefinito in CentOS 8 / RHEL 8

Come modificare il runlevel corrente in RHEL 8/CentOS 8

CentOS / RHEL 7:Guida per principianti alle unità di servizio systemd