Come visualizzare i servizi Linux utilizzando il comando systemctl



Gestire i servizi su Linux può essere un po’ strano se non si ha familiarità con questo sistema, soprattutto perché avviare, arrestare o semplicemente controllare i servizi richiede molto impegno. A volte, i servizi si comportano in modo anomalo o non come previsto, quindi sapere come elencarli e controllarli usando systemctl è praticamente il tuo migliore amico. Questa guida illustra i comandi e i trucchi essenziali per mantenere il tuo sistema Linux perfettamente funzionante e fornisce alcuni suggerimenti pratici che non sono solo un copia e incolla, ma che derivano dall’aver incontrato questi problemi abbastanza volte da impararne le peculiarità.

Come gestire e risolvere i problemi dei servizi con systemctl

Elenca tutti i servizi per vedere cosa è in esecuzione e cosa no

Se stai cercando di capire quali servizi sono caricati sul tuo sistema (forse qualcosa non funziona correttamente), il primo passo è elencarli tutti. Esegui questo comando nel terminale:

sudo systemctl list-units --type=service

Questo comando fornirà una tabella che mostra tutti i servizi con colonne come UNITÀ, CARICO, ATTIVO, SUB e DESCRIZIONE. In alcune configurazioni, potresti notare che la tabella può risultare un po’ troppo elaborata, perché Linux ama essere prolisso. La colonna UNITÀ mostra il nome del file, ad esempio ssh.service, mentre lo stato ATTIVO indica se è in esecuzione o meno. Se vuoi visualizzare tutto, inclusi i servizi inattivi o non funzionanti, aggiungi --all:

sudo systemctl list-units --type=service --all

Questo è particolarmente utile se si sta cercando di individuare un servizio che si sospetta non funzioni o non sia abilitato all’avvio. Perché, naturalmente, Linux deve rendere il tutto più complicato del semplice premere un interruttore, ma conoscere questi comandi aiuta a sbirciare dietro le quinte.

Controlla quali servizi sono attivi o inattivi

Se si sospetta che un servizio specifico non sia in esecuzione o non si avvii come dovrebbe, è possibile restringere il campo:

sudo systemctl list-units --type=service --state=active

Questo filtro mostra solo i servizi attivi (in esecuzione).Viceversa, se vuoi vedere cosa è fermo, esegui:

sudo systemctl list-units --type=service --state=inactive

Utile per individuare i servizi che potrebbero richiedere un riavvio manuale o che non si avviano all’avvio. A proposito, se un servizio sembra inattivo ma dovrebbe essere in esecuzione, potrebbe essere necessario avviarlo manualmente.

Trova i servizi in difficoltà: a volte si fermano e basta

Se un servizio non funziona e lo vedi elencato ma in stato di errore, controlla quanto segue:

sudo systemctl list-units --type=service --state=failed

Mostra tutti i servizi che non sono riusciti ad avviarsi o si sono bloccati.È un buon primo passo per risolvere problemi anomali, perché non importa quante volte si riavvia qualcosa alla cieca, questo vi dirà se il servizio è completamente danneggiato.

Scopri quali servizi sono impostati per l’avvio all’avvio

Sapere cosa è abilitato all’avvio può risparmiarti un sacco di mal di testa in seguito. Esegui:

sudo systemctl list-unit-files --type=service --state=enabled

Questa tabella fornisce una rapida panoramica di ciò che è impostato per essere eseguito all’avvio del sistema, il che può essere utile se un servizio non si avvia perché disabilitato o mascherato. Per visualizzare quelli disabilitati, basta sostituire enabled.disabled

Ottieni i dettagli di un servizio specifico

Vuoi vedere cosa sta succedendo a un servizio specifico? Forse sta fallendo, o vuoi semplicemente conoscerne lo stato, i log, l’utilizzo della memoria, ecc. Esegui:

sudo systemctl status <service-name>

Sostituisci <service-name>con parole come nginx.serviceo cups.service. L’output mostra lo stato attuale, i log recenti e alcune informazioni su CPU/memoria, una sorta di controllo dello stato di salute. Su alcune distribuzioni, potrebbe essere più utile utilizzarlo journalctl -u <service-name>per log dettagliati.

Avvia, arresta, riavvia e ricarica i servizi: rendi permanenti le modifiche

Avvia un servizio

Quando hai bisogno che un servizio sia attivo e funzionante, magari dopo averlo configurato, esegui:

sudo systemctl start <service-name>

Questo avvia il servizio senza problemi. Controlla se funziona con status.

Interrompere un servizio

Per interrompere un servizio non necessario o che non funziona correttamente, eseguire:

sudo systemctl stop <service-name>

Riavvia o ricarica (per apportare modifiche senza interrompere)

Se hai modificato i file di configurazione e vuoi applicare le modifiche, solitamente il riavvio è la soluzione migliore, ma alcuni servizi supportano il ricaricamento rapido. Per riavviare:

sudo systemctl restart <service-name>

Oppure, se supportato, ricarica semplicemente la configurazione:

sudo systemctl reload <service-name>

Nota: non tutti i servizi supportano il reload; consultare prima la documentazione. Di solito, questa opzione è più sicura se si apportano solo piccole modifiche, come la modifica di un parametro di configurazione.

Abilita o disabilita i servizi all’avvio

Vuoi che un servizio si avvii automaticamente all’avvio del computer? Abilitalo:

sudo systemctl enable <service-name>

E se non vuoi più che si avvii, disattivalo:

sudo systemctl disable <service-name>

Se vuoi fare entrambe le cose contemporaneamente, ovvero abilitare e avviare immediatamente, aggiungi semplicemente --now:

sudo systemctl enable --now <service-name>

Servizi di mascheramento e smascheramento: bloccarli o renderli nuovamente disponibili

Il mascheramento impedisce in qualsiasi modo l’avvio di un servizio. Per bloccarlo:

sudo systemctl mask <service-name>

Questo collega il servizio a /dev/null, quindi non può essere avviato manualmente o automaticamente. Utile se hai un servizio che non vuoi che venga eseguito, mai. Per sbloccarlo, basta smascherarlo:

sudo systemctl unmask <service-name>

Suggerimento: a volte, un servizio si rifiuta di avviarsi o rimane bloccato mascherato. Riavvialo o svuota la cache, o addirittura riavvialo dopo aver mascherato/smascherato il servizio se la situazione si fa strana. Succede più spesso di quanto si pensi, soprattutto con servizi ostinati o script personalizzati.

Incartare

Prendere confidenza con systemctl è un punto di svolta per Linux. Non è sempre perfetto e alcuni comandi funzionano in modo diverso a seconda della distribuzione o della versione, ma queste nozioni di base coprono la maggior parte delle situazioni, che si tratti di risolvere problemi, personalizzare o semplicemente cercare di far funzionare un servizio. Aspettatevi un po’ di tentativi ed errori, soprattutto con i servizi mascherati, ma una volta che ci avrete preso la mano, controllare il sistema diventerà molto più semplice.

  • Utilizzalo systemctl list-units --type=serviceper vedere i tuoi servizi
  • Controlla lo stato consystemctl status <service>
  • Avvia/arresta consystemctl start/stop <service>
  • Abilita o disabilita all’avvio consystemctl enable/disable <service>
  • Servizi con mascherina o senza mascherina se sono ostinati

Spero che questo ti risparmi un grattacapo. La gestione dei servizi Linux non è sempre intuitiva, ma con questi comandi sei decisamente più avanti. Incrociamo le dita e speriamo che questo ti aiuti: ha funzionato su diverse configurazioni, quindi forse farà lo stesso anche a te.



Questo articolo è stato utile?