Salta al contenuto principale

Orvieto Linux User Group | Promozione software libero a Orvieto

systemctl: guida completa ai comandi principali su Linux

Introduzione

Nel precedente articolo abbiamo scoperto che systemd è il componente responsabile dell’avvio e della gestione della maggior parte delle moderne distribuzioni GNU/Linux. Ma conoscere systemd significa anche imparare a utilizzare il suo strumento più importante: systemctl.

Ogni volta che si desidera avviare un servizio, interromperlo, verificare se è attivo oppure decidere se dovrà essere eseguito automaticamente all’avvio del sistema, il comando da utilizzare è proprio systemctl.

Anche se inizialmente può sembrare uno strumento riservato agli amministratori di sistema, in realtà rappresenta una delle utility più utili per qualsiasi utente Linux. In questa guida vedremo cosa permette di fare, come è organizzato e quali sono i comandi fondamentali da conoscere.


Che cos’è systemctl?

systemctl è l’interfaccia a riga di comando attraverso cui è possibile comunicare con systemd.

Possiamo immaginarlo come il “telecomando” del sistema operativo: non svolge direttamente le operazioni, ma invia istruzioni a systemd, che si occupa poi di eseguirle.

Attraverso questo comando è possibile:

  • avviare e fermare servizi;
  • verificare lo stato di un servizio;
  • configurare l’avvio automatico;
  • riavviare servizi dopo una modifica;
  • ricaricare configurazioni;
  • consultare le unità gestite dal sistema.

Quasi tutte le moderne distribuzioni Linux basate su systemd utilizzano gli stessi comandi, rendendo l’amministrazione molto più uniforme rispetto al passato.


Il concetto di “servizio”

Prima di utilizzare systemctl è importante capire cosa sia un servizio.

Un servizio è un programma che lavora in background senza richiedere l’intervento dell’utente.

Alcuni esempi comuni sono:

  • il server SSH (sshd);
  • il server web Apache (httpd o apache2);
  • il database MariaDB;
  • il server di stampa CUPS;
  • il gestore della rete.

Molti di questi programmi vengono avviati automaticamente durante il boot del sistema e continuano a funzionare fino allo spegnimento del computer.

Il compito principale di systemctl è proprio amministrare questi servizi.


I comandi fondamentali

Le operazioni più comuni sono poche e facili da ricordare.

Verificare lo stato di un servizio

Per controllare se un servizio è attivo:

systemctl status nome-servizio
 

Ad esempio:

systemctl status sshd
 

Il comando restituisce informazioni come:

  • stato del servizio;
  • data dell’ultimo avvio;
  • identificativo del processo;
  • eventuali messaggi di errore.

Avviare un servizio

Per avviare manualmente un servizio: 

sudo systemctl start nome-servizio
 

L’operazione ha effetto immediato ma non modifica il comportamento ai successivi riavvii del sistema.


Arrestare un servizio

Per interrompere un servizio: 

sudo systemctl stop nome-servizio
 

Questa operazione è utile, ad esempio, quando si devono eseguire attività di manutenzione.


Riavviare un servizio

Quando si modifica un file di configurazione è spesso necessario riavviare il servizio:

sudo systemctl restart nome-servizio
 

In alcuni casi è sufficiente ricaricare soltanto la configurazione: 

sudo systemctl reload nome-servizio
 

Abilitare l’avvio automatico

Per fare in modo che un servizio venga eseguito automaticamente a ogni avvio del sistema:

sudo systemctl enable nome-servizio
 

Per impedirne invece l’avvio automatico:

sudo systemctl disable nome-servizio
 

È importante comprendere la differenza:

  • start avvia il servizio adesso;
  • enable lo avvierà automaticamente ai successivi riavvii.

Sono due operazioni completamente indipendenti.

Come usare questi comandi nella pratica

Quando un servizio non funziona, non è necessario provare i comandi a caso. Esiste una sequenza logica di controlli che permette di individuare rapidamente la causa del problema.

Perché imparare systemctl?

Molti utenti utilizzano Linux senza mai digitare un comando systemctl. Tuttavia, basta installare un server web, configurare SSH, utilizzare Docker o eseguire servizi personalizzati perché questo strumento diventi indispensabile.

Conoscere i suoi comandi principali permette di:

  • comprendere meglio cosa accade durante l’avvio del sistema;
  • risolvere più rapidamente problemi relativi ai servizi;
  • amministrare applicazioni che funzionano in background;
  • acquisire competenze valide su quasi tutte le distribuzioni Linux moderne.

È inoltre il punto di partenza per esplorare funzionalità più avanzate di systemd, come i timer, le unità personalizzate e l’analisi del boot.


Conclusioni

systemctl rappresenta il principale strumento di amministrazione di systemd e costituisce una competenza fondamentale per chi desidera approfondire il funzionamento di Linux.

In questa guida abbiamo visto quali sono le operazioni essenziali e il ruolo che questo comando svolge nella gestione dei servizi. Non è necessario imparare subito tutte le sue opzioni: nella pratica, pochi comandi consentono già di affrontare la maggior parte delle attività quotidiane.

Nei prossimi articoli entreremo maggiormente nel dettaglio, iniziando dalla struttura delle unità systemd e dalla creazione di un servizio personalizzato. Comprendere come systemd descrive e gestisce ogni componente del sistema sarà il passo successivo per utilizzare systemctl con maggiore consapevolezza.

Vuoi approfondire come funzionano le unità di systemd?
Clicca sul seguente pulsante per leggere il prossimo contenuto!

LICENZA E CONDIZIONI D’USO

Questo How-to è rilasciato sotto licenza Creative Commons Attribution-NonCommercial 3.0 Italy

CONTATTI DELL’AUTORE

Marco Ciammella marco@orvietolinux.it

Orvieto Linux User Group info@orvietolinux.it