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

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

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

Se visualizzare tutto è troppo complicato, possiamo filtrare l'output con l'opzione –state.
systemctl lista-unità --tipo=servizio --stato=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

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

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

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

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

Arrestare un servizio è facile quanto avviarlo.
sudore systemctl fermare esempio htg.servizio

È 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

Se si desidera che un servizio venga avviato all'avvio del computer, è necessario abilitarlo.
sudore systemctl abilitare esempio htg.servizio

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

Quando non hai più bisogno che un servizio venga avviato all'avvio, disattivalo.
sudore systemctl disabilitare esempio htg.servizio

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

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à. 🔧🛠️