In questa parte della preparazione all'esame RHCSA imparerai come cambiare manualmente in target di avvio differenti. Questo articolo ti insegnerà anche come impostare una destinazione di avvio predefinita per l'avvio automatico in una destinazione grafica o multiutente su un sistema Red Hat Enterprise Linux.
In questo tutorial imparerai:
- Come controllare la destinazione di avvio predefinita
- Come passare manualmente da un target all'altro
- Come impostare l'avvio predefinito su una destinazione multiutente
- Come impostare l'avvio predefinito sulla destinazione grafica
Modifica la destinazione del livello di esecuzione predefinita sul sistema RHEL 8.
Requisiti e convenzioni software utilizzati
Categoria | Requisiti, convenzioni o versione del software utilizzata |
---|---|
Sistema | Red Hat Enterprise Linux 8 |
Software | N/D |
Altro | Accesso privilegiato al tuo sistema Linux come root o tramite sudo comando. |
Convenzioni | # – richiede che i comandi linux dati vengano eseguiti con i privilegi di root direttamente come utente root o usando sudo comando$ – richiede che i comandi linux dati vengano eseguiti come un normale utente non privilegiato |
Quali sono i target a livello di esecuzione
Puoi pensare alla destinazione di avvio come a un livello operativo specifico. Quindi, ad esempio, se preferisci utilizzare l'interfaccia utente grafica (dato che la GUI è installata) potresti voler cambiare il livello di operazione in graphical.target
. Allo stesso modo, per il livello operativo multiutente non grafico dovrai passare a multi-user.target
.
Se hai familiarità con SysV, quale era lo standard di inizializzazione predefinito per molti sistemi GNU/Linux prima di systemd
proliferazione potresti richiamare il target grafico come runlevel 5
o destinazione multiutente come runlevel 4
. In effetti non è cambiato molto e la nomenclatura del runlevel esiste ancora. Usando il comando seguente puoi elencare tutti i target runlevel disponibili sul tuo sistema RHEL:
# ls -l /lib/systemd/system/runlevel*.target
Per tutti i possibili bersagli utilizzare:
# systemctl list-units --type target or # systemctl list-units --type target --all
Livello di esecuzione | Unità target | Descrizione dell'unità target |
---|---|---|
0 | runlevel0.target o poweroff.target | La modifica del sistema al runlevel 0 spegnerà il sistema e spegnerà il server/desktop. |
1 | runlevel1.target o rescue.target | Noto anche come modalità singola, il runlevel di ripristino viene utilizzato per la risoluzione dei problemi del sistema e varie attività di amministrazione del sistema. |
2 | runlevel2.target o multi-user.target | Livello di esecuzione definito dall'utente. Per impostazione predefinita, identico al runlevel 3. |
3 | runlevel3.target o multi-user.target | Questo è un runlevel multiutente e non grafico. Più utenti possono accedere tramite console/terminali locali o accesso remoto alla rete. |
4 | runlevel4.target o multi-user.target | Livello di esecuzione definito dall'utente. Per impostazione predefinita, identico al runlevel 3. |
5 | runlevel5.target o graphical.target | Livello di esecuzione grafico multiutente. Più utenti possono accedere tramite console/terminali locali o accesso remoto alla rete. |
6 | runlevel6.target o reboot.target | La modifica del sistema a questo runlevel riavvierà il sistema. |
Durante il tuo esame RHCSA, quando rimani bloccato o semplicemente non riesci a ricordare parte della terminologia di cui sopra relativa ai runlevel, consulta la pagina di manuale eseguendo
man runlevel
comando.Come controllare e modificare la destinazione di avvio predefinita
In primo luogo, impareremo come controllare una destinazione di avvio predefinita del livello di esecuzione attualmente configurata. Una volta terminato, imposteremo una destinazione del livello di esecuzione predefinita del nostro sistema sul livello di esecuzione 3, ovvero su multi-user.target
unità bersaglio. L'impostazione di un target di runlevel predefinito indicherà al tuo sistema di avviarsi automaticamente in un runlevel preconfigurato.
- Verifica una configurazione di sistema predefinita a livello di esecuzione:
# systemctl get-default graphical.target OR # ls -l /etc/systemd/system/default.target
Il comando precedente produrrà un nome dell'unità di destinazione del runlevel predefinita attualmente impostata.
- Imposta l'unità di destinazione del livello di esecuzione predefinita su
multi-user.target
unità bersaglio. Questo configurerà il tuo sistema per l'avvio inrunlevel3
al prossimo riavvio del sistema.# systemctl set-default multi-user.target Removed /etc/systemd/system/default.target. Created symlink /etc/systemd/system/default.target → /usr/lib/systemd/system/multi-user.target.
LO SAPEVATE?
Puoi fare riferimento a singole unità target con nomi diversi. Ad esempio, per il tuo esame RHCSA potresti trovare più facile ricordarerunlevel3
invece dimulti-user.target
. Non solo è più facile da ricordare, ma è anche più veloce da digitare, risparmiando così tempo per l'esame. Ad esempio, i seguenti quattro comandi sono completamente identici. Il comando migliore da usare è quello che ricordi più facilmente:# systemctl set-default multi-user.target # systemctl set-default multi-user # systemctl set-default runlevel3.target # systemctl set-default runlevel3
Per capire meglio cosa sta succedendo qui, dovresti prima rivedere l'obiettivo RHCSA di creare collegamenti rigidi e morbidi. Una volta pronto, nota che prende di mira come ad esempio
Elenca tutte le destinazioni di avvio disponibili sul sistema RHEL.multi-user.target
è semplicemente un collegamento simbolico delrunlevel3.target
unità. - Riavvia il sistema:
# reboot
Come passare manualmente in un target di runlevel diverso
La sezione precedente ha spiegato come modificare un runlevel predefinito. Ciò significa che al successivo riavvio del sistema si avvierà in un runlevel selezionato dall'utente. Successivamente, impareremo come modificare il runlevel al volo senza necessità di riavvio. Questo può essere ottenuto usando il systemctl
comando con una combinazione di isolate
discussione.
Nell'esempio seguente cambieremo temporaneamente da graphical
runlevel a multi-user
bersaglio.
- Passa a
multi-user
runlevel:# systemctl isolate multi-user
Quanto sopra un comando ha semplicemente disabilitato il
graphical
runlevel e servizi corrispondenti. - Se non riesci a visualizzare la richiesta di accesso, potresti dover passare a una console TTY diversa utilizzando la combinazione di
CTRT+ALT+F1
chiavi.
Esercizi
- Riavvia il sistema passando manualmente a
reboot.target
usando ilsystemctl
comando. Puoi anche utilizzare l'arresto di destinazione a livello di esecuzione e spegnere il sistema? - Imposta il tuo sistema in modo che si avvii direttamente su
multi-user
bersaglio. Riavvia il sistema e conferma che il sistema si avvii costantemente inmulti-user
bersaglio. - Prova a passare ripetutamente dal
multi-user
runlevel egraphical
livello di esecuzione. Perché non è possibile visualizzare direttamente la richiesta di accesso quando si passa dalgraphical
amulti-user
livello di esecuzione? - Questa è una domanda extra per i buoni studenti e per coloro che non hanno paura delle piccole seccature e della ricerca personale.
ATTENZIONE
Mentre lavori alla domanda 4 potresti ritrovarti con un sistema rotto. Quindi procedere solo su sistemi non di produzione come macchine virtuali sandbox ecc.Ancora una volta, non tentare questa domanda se non sei pronto a rompere il tuo sistema! Imposta la destinazione di avvio predefinita su
reboot.target
unità e riavviare il sistema. Puoi correggere i riavvii costanti e reimpostare il runlevel predefinito per direrunlevel5
?