GNU/Linux >> Linux Esercitazione >  >> Linux

Comandi Systemctl per gestire il servizio Systemd

Systemctl è un'utilità utilizzata da systemd per la gestione del sistema e del gestore dei servizi. Molte moderne distribuzioni Linux come Ubuntu, Debian, Fedora, Linux Mint, OpenSuSE, Redhat hanno adottato systemd come sistema di inizializzazione predefinito.

Utilizzando systemctl puoi avviare, interrompere, ricaricare, riavviare il servizio, elencare le unità, controllare lo stato del servizio, abilitare/disabilitare il servizio, gestire i target (runlevel) e il risparmio energetico.

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, esegui systemctl seguito dal nome del servizio spaziale 'start'.

Esempio:

systemctl start dnsmasq

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

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

systemctl stop dnsmasq

Per riavviare un servizio, usa systemctl restart nome-servizio.

Esempio:

systemctl restart dnsmasq

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

Ad esempio:

systemctl reload sshd

2. Systemctl controlla lo stato del servizio

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

systemctl status dnsmasq

3. Seleziona e abilita/disabilita il servizio all'avvio

Per abilitare un servizio all'avvio (corrisponde a 'chkconfig on' nel sistema sysvinit), usa systemctl enable service-name.

Esempio:

systemctl enable dnsmasq.service

Allo stesso modo, i servizi possono essere disabilitati all'avvio, esegui:

systemctl disable dnsmasq.service

Per verificare se un servizio è abilitato all'avvio o meno, esegui:

systemctl is-enabled dnsmasq.service

4. Unità elenco Systemctl

Per elencare tutte le unità in esecuzione, eseguire il comando systemctl senza alcuna opzione. Anche l'opzione list-units fa lo stesso.

systemctl

o

systemctl list-units

Le unità guaste possono essere elencate con l'opzione --failed.

systemctl --failed

Per elencare tutti i servizi attivi, esegui:

systemctl list-units -t service

6. Comandi di riavvio/arresto di Systemctl

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

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

systemctl poweroff

Il comando seguente spegnerà il sistema ma non spegnerà la macchina. Questo invierà una notifica a tutti gli utenti che hanno effettuato l'accesso.

systemctl halt

Spegnere la macchina ma non invierà alcuna notifica a tutti gli utenti che hanno effettuato l'accesso.

systemctl --no-wall poweroff

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

journalctl -u systemd-shutdownd

7. Systemclt alla gestione dei 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 la comunicazione 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 [email protected]

8. Gestione degli obiettivi

Systemd ha un concetto di target che hanno uno scopo simile ai runlevel nel sistema sysVinit.

I runlevel in sysVinit erano principalmente numerici (0,1,2,...). Ecco i runlevel in sysVinit con le loro controparti di sistema:

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 l'obiettivo corrente, digita:

systemctl isolate graphical.target

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

systemctl list-units --type=target

Puoi vedere "graphical.target" elencato qui. Questo è ciò che 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

Per elencare la destinazione predefinita, digita:

systemctl get-default

La destinazione predefinita può essere impostata con il comando set-default, digitare:

systemctl set-default graphical.target

Altri utili comandi di sistema

Accesso al sistemad

Il systemd ha un proprio sistema di registrazione chiamato journald. Sostituisce il demone syslog di sysVinit.

journalctl

Per vedere tutti i messaggi di avvio, esegui il comando "journalctl -b".

journalctl -b

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

journalctl -f

Per controllare i log specifici per un particolare servizio o eseguibile, usa journalctl come:

journalctl /usr/sbin/dnsmasq

Trova la durata del processo di avvio

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

systemd-analyze

Anche il tempo di analisi del sistema mostra le stesse informazioni.

systemd-analyze time

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

systemd-analyze blame

Comando Hostnamectl

Per mostrare e modificare il nome host usa il comando hostnamectl.

hostnamectl

Conclusione

In questo tutorial, abbiamo appreso 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:

  • Processo di avvio di Systemd uno sguardo da vicino in Linux
  • Colorato! systemd vs sysVinit cheatsheet Linux

Linux
  1. Gestisci più istanze del servizio con systemctl

  2. Gestisci l'avvio usando systemd

  3. Utilizzo del comando systemctl per gestire le unità systemd

  4. Come gestire le unità systemd all'avvio

  5. Usa Systemctl per gestire i servizi

Comandi separati per gestire la partizione del disco

Gestire cgroup con systemd

Iniziare con systemctl

Modo corretto di usare Ubuntu systemctl per controllare Systemd

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

Come interrompere il servizio systemd