systemctl: controllo totale su Linux in 12 passaggi

systemctl 12 comandi che padroneggiano Linux

systemctl: 12 comandi per padroneggiare Linux 🚀

Il comando systemctl ha diverse caratteristiche che spesso vengono trascurate. Oltre ad avviare e arrestare i servizi in Linux, è anche possibile elencare i servizi installati e verificarne lo stato. Facciamo una rapida panoramica! 🚀

Che cos'è il comando Systemctl?

Il comando systemctl è lo strumento di gestione centrale per il sistema di inizializzazione systemd, noto principalmente come strumento utilizzato per avviare e arrestare i servizi. Ma c'è molto di più, come dimostra il suo pagina man che ha più di 1600 linee. 📖

Poiché systemctl è uno strumento di gestione e non solo un lanciatore di servizi, puoi utilizzarlo per accedere a informazioni utili sul tuo sistema e sui suoi servizi systemd. 💻

La maggior parte delle distribuzioni Linux ha adottato systemd, ma alcune hanno scelto di mantenere il tradizionale sistema di init SystemV. Se non sei sicuro di quale sia quella utilizzata dalla tua distribuzione, scoprirlo è facile. Utilizzeremo il comando stat per esaminare il file init.

statistica /sbin/init 
Utilizzo del comando stat per verificare se un'installazione Linux utilizza SystemV o systemd.

Il file eseguibile /sbin/init è il primo processo avviato nelle distribuzioni basate su SystemV. Nelle distribuzioni basate su systemd, un collegamento simbolico con quel nome punta a systemd.

La prima riga di output ci mostra che su questa macchina di prova Ubuntu, /sbin/init è un collegamento simbolico al file /lib/systemd/systemd. Chiaramente, questa installazione Linux utilizza systemd. Se si trattasse di una distribuzione basata su SystemV, la riga conterrebbe solo “File: /sbin/init”.

Interrogazione dei servizi con systemctl

I servizi sono definiti nei file di unità e la parola unit è presente in tutte le opzioni di systemctl. Ad esempio, possiamo ottenere un elenco di servizi con il comando list-units utilizzando l'opzione –type.

systemctl lista-unità --tipo=servizio
Output del comando systemctl list-units, che mostra i servizi in esecuzione e arrestati.

L'output viene visualizzato nel visualizzatore di file less, consentendo di navigare e di utilizzare il tasto / per effettuare ricerche.

  • Unità: Nome del file dell'unità.
  • Trasportare: Se il file dell'unità di servizio è stato letto nella memoria senza errori di sintassi, questa colonna conterrà "caricato". Ciò non significa che il servizio sia attivo.
  • Risorsa: Una panoramica per sapere se un servizio è attivo. Un servizio attivo potrebbe non essere in esecuzione.
  • Sub: Una visualizzazione più dettagliata per sapere se un servizio è in esecuzione. Ad esempio, un servizio attivo potrebbe essere programmato per un timer e potrebbe essere terminato durante l'ultima esecuzione.
  • Descrizione: Riga di testo destinata a identificare o descrivere il servizio.

Nella visualizzazione sono visualizzati solo i servizi attivi. Per visualizzare tutti i servizi, dobbiamo includere l'opzione –all.

systemctl lista-unità --tutto --tipo=servizio
Output del comando systemctl list-units, che mostra tutti i servizi.

Se visualizzare tutto è troppo complicato, possiamo filtrare l'output con l'opzione –state.

systemctl lista-unità --tipo=servizio --stato=in esecuzione
L'output del comando systemctl list-units, filtrato per mostrare solo i servizi in esecuzione.

L'opzione stato accetterà in esecuzione, arrestato, abilitato, disabilitato e fallito.

Per concentrarsi sui servizi non riusciti, utilizzare l'opzione –failed.

systemctl lista-unità --fallito
Output del comando systemctl list-units, filtrato per mostrare solo i servizi non riusciti. Non ci sono servizi non funzionanti.

Non ci sono unità guaste su questo computer.

Se vedi servizi non riusciti, usa l'opzione list-dependencies per verificare le dipendenze non soddisfatte.

systemctl lista-dipendenze sshd.service
L'output del comando systemctl list-dependencies mostra le dipendenze per il servizio sshd.

Le dipendenze sono contrassegnate da un cerchio colorato che ne rappresenta lo stato. Potrebbe essere:

  • Cerchio bianco: Inattivo o in manutenzione
  • Punto verde: Risorsa.
  • Punto bianco: Disattivazione.
  • Punto rosso: Errore o mancata esecuzione.

Per verificare se un singolo servizio è abilitato, utilizzare il comando is-enabled e specificare il nome del file unità del servizio.

systemctl è-abilitato htg-example.service
Utilizzare systemctl is-enabled per determinare se un servizio specifico è abilitato.

Controllo dei servizi con systemctl

Utilizzare systemctl per gestire i servizi è molto semplice e segue il formato dei comandi che abbiamo visto finora. La differenza più grande è che per apportare modifiche agli stati del servizio sarà necessario usare sudo. Finora non lo abbiamo fatto perché abbiamo solo riferito sullo stato dei servizi.

Per avviare un servizio, utilizzare il comando start seguito dal nome del servizio.

sudore systemctl inizio esempio htg.servizio
Avvio di un servizio con il comando systemctl start.

Se tutto va bene, verrai reindirizzato silenziosamente al prompt dei comandi. Se preferisci avere una conferma positiva, puoi verificarla con il comando status.

sudore systemctl stato esempio htg.servizio
Controllo dello stato di un servizio con il comando systemctl status.

Arrestare un servizio è facile quanto avviarlo.

sudore systemctl fermare esempio htg.servizio
Arresto di un servizio con il comando systemctl stop.

È possibile riavviare un servizio senza dover eseguire il processo in due fasi di arresto e successivo avvio. Lui comando di riavvio fa tutto per te.

sudore systemctl ricomincia esempio htg.servizio
Riavvio di un servizio con il comando systemctl restart.

Se si desidera che un servizio venga avviato all'avvio del computer, è necessario abilitarlo.

sudore systemctl abilitare esempio htg.servizio
Abilitare un servizio con il comando systemctl enable.

Si noti che questo contrassegna solo il servizio da avviare all'avvio del sistema, non lo avvia immediatamente. Se è questo che desideri, ho aggiunto l'opzione –now.

sudore systemctl abilitare --Ora esempio htg.servizio
Abilitare e avviare un servizio contemporaneamente con il comando systemctl enable --now.

Quando non hai più bisogno che un servizio venga avviato all'avvio, disattivalo.

sudore systemctl disabilitare esempio htg.servizio
Disattivazione di un servizio con il comando systemctl disable.

Puoi utilizzare il comando journalctl, un'altra parte di systemd, per cercare voci relative al tuo servizio. L'opzione -u (unità) consente di specificare il servizio di interesse. Con l'opzione -S (dal), è possibile visualizzare le voci che si sono verificate a partire dal momento specificato.

journalctl -S "08:00:00" -O esempio htg.servizio
Utilizzo del comando journalctl per visualizzare le voci del registro di sistema relative a un servizio specifico.

Qualsiasi strumento che ti aiuti ottenere informazioni sull'operazione gli aspetti interni della tua distribuzione Linux saranno preziosissimi, sia per la gestione quotidiana che per la risoluzione dei problemi e la diagnosi. Il comando systemctl non è uno strumento singolo. È più simile a una cassetta degli attrezzi specializzata e vale la pena prenderci familiarità. 🔧🛠️

5 2 voti
Valutazione dell'articolo
Iscriviti
Notifica di
ospite

0 Commenti
più antico
Più recente I più votati
Commenti in linea
Vedi tutti i commenti