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 es la herramienta central de gestiΓ³n del sistema init systemd, conocida principalmente como la herramienta que se usa para iniciar y detener servicios. Pero hay mucho mΓ‘s, como lo demuestra su pΓ‘gina de manual que tiene mΓ‘s de 1600 lΓneas. π
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Γ . π§π οΈ




















