LINUX

Comandi Systemctl per gestire il servizio Systemd

Systemctl è un’utilità utilizzata da systemd per gestire il sistema e il gestore dei servizi. Molte distribuzioni Linux moderne come Ubuntu, Debian, Fedora, Linux Mint, OpenSuSE, Redhat hanno adottato systemd come sistema di init predefinito.

Utilizzando systemctl è possibile avviare, arrestare, ricaricare, riavviare il servizio, elencare le unità, controllare lo stato del servizio, abilitare/disabilitare il servizio, gestire gli obiettivi (runlevel) e la gestione dell’alimentazione.

In questo tutorial, ti mostrerò come utilizzare i comandi systemctl per gestire il servizio systemd in Linux.

1. Systemctl Avvia/Arresta/Riavvia/Ricarica servizio

Per avviare un servizio in Linux, eseguire systemctl seguito dal nome del servizio spaziale “start”.

Esempio:

systemctl start dnsmasq

A differenza del comando service, il comando systemctl start non produce alcun output.

systemctl start nome-servizio
Output – systemctl avvia nome-servizio

Per arrestare un servizio, utilizzare systemctl stop service-name. Per esempio:

systemctl stop dnsmasq
systemctl stop nome-servizio
L’output di systemctl stop nome-servizio

Per riavviare un servizio, utilizzare systemctl restart service-name.

Esempio:

systemctl restart dnsmasq
systemctl riavvia nome-servizio
Riavvio del sistema output nome-servizio

Per ricaricare la configurazione del servizio (ad esempio ssh) senza riavviarlo, utilizzare systemctl reload service-name.

Per esempio:

systemctl reload sshd
systemctl ricarica un servizio
Systemctl ricarica l’output del servizio

2. Systemctl controlla lo stato del servizio

Per vedere se un servizio è in esecuzione o meno, possiamo utilizzare il controllo dello stato di systemctl.

systemctl status dnsmasq
Stato del servizio
servizio di stato systemctl

3. Selezionare e abilitare/disabilitare il servizio all’avvio

Per abilitare un servizio all’avvio (corrisponde a “chkconfig on” in sysvinit), utilizzare systemctl enable service-name.

Esempio:

systemctl enable dnsmasq.service
Abilita il servizio all'avvio

Allo stesso modo, i servizi possono essere disabilitati all’avvio, eseguire:

systemctl disable dnsmasq.service
Disabilita il servizio all'avvio
Disabilita il servizio all’avvio

Per verificare se un servizio è abilitato all’avvio o meno, eseguire:

systemctl is-enabled dnsmasq.service
verificare se un servizio è abilitato
verificare se un servizio è abilitato

4. Unità elenco Systemctl

Per elencare tutte le unità in esecuzione, eseguire il comando systemctl senza alcuna opzione. L’opzione list-units fa la stessa cosa.

systemctl

o

systemctl list-units
unità di elenco systemctl

Le unità fallite possono essere elencate con l’opzione –failed.

systemctl --failed
systemctl unità guaste
systemctl unità guaste

Per elencare tutti i servizi attivi, eseguire:

systemctl list-units -t service
systemctl elenca tutti i servizi attivi
systemctl elenca tutti i servizi attivi

6. Comandi di riavvio/arresto di Systemctl

Come il comando shutdown, il comando systemctl per spegnere, riavviare o ibernare il sistema.

Il seguente comando spegnerà il sistema e spegnerà la macchina e invierà una notifica a tutti gli utenti che hanno effettuato l’accesso.

systemctl poweroff

Il seguente comando spegnerà il sistema ma non fermerà la macchina. Questo invierà una notifica a tutti gli utenti registrati.

systemctl halt

Spegni il dispositivo, ma non invierà alcuna notifica a tutti gli utenti connessi.

systemctl --no-wall poweroff

Per visualizzare i dettagli di spegnimento, eseguire il comando seguente.

journalctl -u systemd-shutdownd

7. Systemclt per gestire i sistemi remoti

In genere, tutti i comandi systemctl precedenti possono essere utilizzati per gestire un host remoto con il comando systemctl stesso. Questo utilizzerà ssh per comunicare con l’host remoto. Tutto quello che devi fare è aggiungere l’utente e l’host al comando systemctl in questo modo:

systemctl status sshd -H root@1.2.3.4
Gestisci il sistema da remoto

8. Gestione degli obiettivi

Systemd ha un concetto di obiettivi con uno scopo simile ai runlevel nel sistema sysVinit.

I runlevel in sysVinit erano per lo più numerici (0,1,2,…). Ecco i runlevel di sysVinit con le loro controparti systemd:

0 runlevel0.target, poweroff.target
1, s, single runlevel1.target, rescue.target
2, 4 runlevel2.target, runlevel4.target, multi-user.target
3 runlevel3.target, multi-user.target
5 runlevel5.target, graphical.target
6 runlevel6.target, reboot.target
emergency emergency.target

Per modificare il target corrente, digitare:

systemctl isolate graphical.target
Cambia il bersaglio
Cambia la destinazione usando systemctl

Se vuoi vedere in che target ti trovi, devi elencare tutte le unità corrispondenti.

systemctl list-units --type=target
Obiettivo attuale
controllare l’obiettivo attuale

Puoi vedere “graphical.target” elencato qui. Questo è ciò in cui abbiamo cambiato il nostro obiettivo. Ora cambiamo nuovamente il runlevel in multi-user.target e quindi analizziamo questo output:

systemctl isolate multi-user.target
systemctl list-units --type=target
Obiettivo multiutente
passare al target multiutente

Per elencare la destinazione predefinita, digitare:

systemctl get-default
obiettivo predefinito
Elenca l’obiettivo predefinito

L’obiettivo predefinito può essere impostato con il comando set-default, digitare:

systemctl set-default graphical.target
Imposta l'obiettivo predefinito
Imposta l’obiettivo predefinito

Un altro utile comando systemd

Sistema di accesso

Systemd ha il proprio sistema di registrazione chiamato journald. Sostituisce il demone syslog di sysVinit.

journalctl
Registri di sistema
Registri di sistema

Per vedere tutti i messaggi di avvio, eseguire il comando “journalctl -b”.

journalctl -b
Messaggi di avvio
Messaggi di avvio

Il seguente comando segue i log di sistema in tempo reale (simile a tail -f).

journalctl -f
Segui i log
Segui i log

Per controllare i log specifici di un particolare servizio o eseguibile, utilizzare journalctl come:

journalctl /usr/sbin/dnsmasq
Log specifici del servizio
Log specifici del servizio

Trova la durata del processo di avvio

Per trovare la durata del processo di avvio di systemd con il seguente comando:

systemd-analyze
analisi di sistema
analisi di sistema

Anche il tempo di analisi di systemd mostra le stesse informazioni.

systemd-analyze time
tempo di analisi di sistema
tempo di analisi di sistema

Per stampare un elenco di tutte le unità in esecuzione, ordinate in base al tempo impiegato per l’inizializzazione, utilizzare systemd-analyze bias.

systemd-analyze blame
systemd-analyze errore
systemd-analyze errore

Comando hostnamectl

Per visualizzare e modificare il nome host, utilizzare il comando hostnamectl.

hostnamectl
hostnamectl
L’output di hostnamectl

Conclusione

In questo tutorial, abbiamo imparato i comandi systemctl per gestire il servizio systemd nelle distribuzioni Linux. Spero che ti sia piaciuto leggere e per favore lascia i tuoi suggerimenti nella sezione commenti qui sotto.

Leggi anche:

Related Articles

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Back to top button
Close