1,413 28/02/2026 07/04/2026 16 min

La gestione del sistema e dei servizi delle macchine virtuali Linux è una competenza chiave per qualsiasi amministratore che lavora con ambienti cloud. Acquisisci familiarità con i numerosi sottocomandi e osserva la produttività della tua amministrazione Linux salire alle stelle. Systemd è un moderno sistema init e gestore di sistemi e servizi per Linux. È progettato per essere compatibile con i tradizionali script di inizializzazione di System V e LSB (Linux Standard Base), fornendo funzionalità avanzate per la gestione dei servizi e delle risorse di sistema. È diventato il sistema di init predefinito per molte distribuzioni Linux popolari, come Fedora, Ubuntu, Debian, openSUSE e Arch Linux. Il comando systemctl gestisce le configurazioni del sistema e dei servizi, consentendo agli amministratori di gestire il sistema operativo e controllare lo stato dei servizi. Inoltre, systemctl è utile per la risoluzione dei problemi e l'ottimizzazione delle prestazioni di base.

1. systemdctl

systemctl è uno strumento da riga di comando che consente di interagire con il sistema systemd e il gestore dei servizi su Linux abilitato per systemd. Fornisce un'ampia gamma di funzionalità per controllare e gestire servizi, unità e stati del sistema.

  • systemctl status [service]: controlla lo stato di un servizio o di un'unità.
  • systemctl start [service]: avvia un servizio o un'unità.
  • systemctl stop [service]: arresta un servizio o un'unità.
  • systemctl restart [service]: Riavvia un servizio o un'unità.
  • systemctl reload [service]: Ricarica la configurazione di un servizio senza riavviarlo (se supportato).
  • systemctl enable [service]: abilita l'avvio di un servizio all'avvio.
  • systemctl disable [service]: disabilita l'avvio di un servizio all'avvio.
  • systemctl list-units: Elenca tutte le unità (servizi, supporti, dispositivi, ecc.) gestite da systemd.
  • systemctl list-unit-files: Elenca tutti i file unità e il loro stato abilitato/disabilitato.
  • systemctl daemon-reload: Ricarica la configurazione di systemd, richiesta dopo aver modificato i file di servizio.

2. journalctl

journalctl è il comando per interrogare e visualizzare i log dal systemd journal sui sistemi Linux. Il systemd journal è un sistema di registrazione centralizzato e strutturato che raccoglie e archivia i messaggi di registro da vari componenti del sistema, inclusi il kernel, i servizi e le applicazioni. journalctlfornisce numerose opzioni per il filtraggio e la visualizzazione delle voci di registro, rendendolo un potente strumento per la risoluzione dei problemi e il monitoraggio degli eventi di sistema.

  • journalctl: mostra il registro completo del diario.
  • journalctl -u [service]: mostra i registri per un servizio o un'unità specifici.
  • journalctl -f: mostra continuamente nuove voci di registro in tempo reale (modalità follow).
  • journalctl --since "YYYY-MM-DD HH:MM:SS": mostra le voci del registro da una data e un'ora specifiche.
  • journalctl --until "YYYY-MM-DD HH:MM:SS": mostra le voci del registro fino a una data e un'ora specifiche.
  • journalctl -p [priority]: mostra le voci di registro con una priorità specifica (ad esempio, emerg, alert, crit, err, warning, notice, info, debug).
  • journalctl -k: mostra i messaggi di log del kernel.
  • journalctl --disk-usage: mostra l'utilizzo totale del disco del giornale.

3. hostnamectl

hostnamectl è un'utilità della riga di comando per la gestione del nome host e delle relative impostazioni. Ti consente di visualizzare e modificare il nome host del sistema, nonché di configurare i nomi host statici, transitori e graziosi. Inoltre, fornisce informazioni sull'attuale sistema operativo, kernel e architettura di sistema.

  • hostnamectl: mostra il nome host corrente e le relative informazioni.
  • hostnamectl set-hostname [hostname]: imposta il nome host del sistema.
  • hostnamectl set-chassis [type]: imposta il tipo di chassis del sistema (ad es. desktop, laptop, server, vm).
  • hostnamectl set-deployment [environment]: imposta l'ambiente di distribuzione del sistema (ad es. sviluppo, staging, produzione).

4. timedatectl

timedatectl è un comando utilizzato per gestire le impostazioni di data, ora e fuso orario. Fornisce un'interfaccia per la visualizzazione e la modifica dell'orologio di sistema, la regolazione del fuso orario e la configurazione del Network Time Protocol (NTP) per la sincronizzazione dell'ora.

  • timedatectl: mostra l'ora corrente, la data e le informazioni sul fuso orario.
  • timedatectl set-time [time]: Imposta l'ora del sistema.
  • timedatectl set-timezone [timezone]: imposta il fuso orario del sistema.
  • timedatectl set-ntp [true/false]: abilita o disabilita la sincronizzazione dell'ora di rete (NTP).

5. localectl

localectl è un comando per la gestione delle impostazioni locali del sistema e del layout della tastiera. Consente di visualizzare e modificare la lingua del sistema, la codifica dei caratteri e le impostazioni del layout della tastiera. Questa utilità semplifica la configurazione delle impostazioni locali e della tastiera appropriate per il sistema, garantendo un supporto linguistico e una funzionalità di input adeguati.

  • localectl: mostra le impostazioni locali e della tastiera correnti.
  • localectl set-locale [locale]: imposta le impostazioni locali del sistema.
  • localectl list-locales: Elenca le località disponibili.
  • localectl set-keymap [keymap]: imposta la mappa dei tasti della console di sistema.
  • localectl list-keymaps: elenca le mappe dei tasti della console disponibili.
  • localectl set-x11-keymap [layout] [model] [variant] [options]: imposta la mappa dei tasti X11 (grafica). Specifica layout, modello, variante e opzioni secondo necessità.

6. loginctl

loginctl è un comando per la gestione delle sessioni utente e delle postazioni. Fornisce un'interfaccia per interagire e controllare vari aspetti delle sessioni utente, come l'elenco delle sessioni attive, la visualizzazione dello stato dell'utente e della sessione, la chiusura delle sessioni e il blocco o lo sblocco delle sessioni.

  • loginctl: elenca le sessioni utente.
  • loginctl user-status [user]: mostra lo stato di un utente specifico.
  • loginctl show-session [session_id]: Mostra informazioni dettagliate su una sessione specifica.
  • loginctl show-user [user]: Mostra informazioni dettagliate su un utente specifico.
  • loginctl terminate-user [user]: Termina tutte le sessioni per un utente specifico.
  • loginctl terminate-session [session_id]: termina una sessione specifica.
  • loginctl lock-session [session_id]: blocca una sessione specifica.
  • loginctl unlock-session [session_id]: sblocca una sessione specifica.

7. systemd-analyze

systemd-analyze è un comando per analizzare e diagnosticare le prestazioni di avvio del sistema e le dipendenze del servizio all'interno del sistema systemd e del gestore dei servizi. Fornisce varie opzioni per ispezionare il processo di avvio, identificare i servizi ad avvio lento e visualizzare la catena critica di unità durante la sequenza di avvio. Utilizzando systemd-analyze, puoi ottenere informazioni dettagliate sulle prestazioni di avvio del tuo sistema e identificare potenziali colli di bottiglia o problemi che devono essere risolti.

  • systemd-analyze: Mostra il tempo impiegato per avviare il sistema.
  • systemd-analyze blame: Mostra un elenco di servizi ordinati in base al tempo impiegato per inizializzarli.
  • systemd-analyze critical-chain: mostra un albero della catena di unità critiche durante l'avvio.
  • systemd-analyze plot > boot.svg: Genera una rappresentazione grafica del processo di avvio, salvata come file SVG.

8. systemd-cgls

systemd-cgls è un comando per visualizzare la gerarchia dei gruppi di controllo (cgroup) e i processi associati su Linux. I gruppi di controllo sono una funzionalità del kernel che consente di organizzare, gestire e limitare l'utilizzo delle risorse per gruppi di processi. systemd-cglsfornisce un modo semplice per visualizzare la gerarchia di cgroup in una struttura ad albero, rendendo conveniente esaminare come le risorse vengono allocate e gestite tra diversi servizi e componenti di sistema.

  • systemd-cgls: mostra una vista ad albero di tutti i gruppi di controllo e dei relativi processi.

9. systemd-cgtop

systemd-cgtop è un comando che mostra i principali gruppi di controllo (cgroup) in base al loro utilizzo delle risorse. Fornisce una visualizzazione dinamica in tempo reale del consumo di risorse, come CPU, memoria e I/O, per ogni cgroup. Questa utilità è simile nel concetto al topcomando, ma si concentra specificamente sull'utilizzo delle risorse di cgroups.

  • systemd-cgtop: mostra una vista dall'alto in tempo reale dei gruppi di controllo e del relativo utilizzo delle risorse (CPU, memoria e I/O).

10. systemd-delta

systemd-delta è un comando che analizza e visualizza le differenze tra i file unit systemd forniti dal fornitore, forniti dall'utente e runtime. Ti aiuta a identificare le differenze e le modifiche apportate ai file di unità, che possono essere utili per la risoluzione dei problemi o per comprendere le personalizzazioni nella configurazione del tuo sistema.

  • systemd-delta: mostra le differenze tra i file di unità di runtime forniti dal fornitore, forniti dall'utente e.
  • systemd-delta --type=masked: mostra solo le unità mascherate.
  • systemd-delta --type=extended: Mostra solo le unità con configurazione estesa.

11. systemd-path

systemd-path è un comando che visualizza i percorsi e le directory utilizzate dal sistema systemd. Fornisce informazioni su varie directory di sistema, come configurazione, stato, cache, log e directory dei dati di runtime, tra le altre. Utilizzando systemd-path, è possibile identificare e individuare facilmente le directory utilizzate da systemd e i servizi associati, che possono essere utili quando si lavora con file di configurazione, registri o altri dati di sistema. Può anche aiutare a garantire che si stia lavorando con i percorsi corretti durante la risoluzione dei problemi o la personalizzazione della configurazione di systemd.

  • systemd-path: mostra i percorsi di varie directory di sistema (ad es. stato, cache, log, ecc.).
  • systemd-path [name]: mostra il percorso di una directory specifica per nome (ad esempio, systemd-path logs).

12. systemd-nspawn

systemd-nspawn è un comando che fornisce funzionalità di contenitore leggero. Consente di creare, avviare e gestire ambienti isolati, chiamati container, utilizzando il kernel Linux esistente e le funzionalità di systemd come cgroup, spazi dei nomi e funzionalità. systemd-nspawnnon è ricco di funzionalità come Docker o LXC, ma offre un approccio semplice e diretto all'esecuzione di container per vari scopi, come applicazioni di test, sviluppo o sandboxing. Può avviare contenitori da directory o immagini disco e supporta l'isolamento della rete e la gestione delle risorse.

  • systemd-nspawn -D [directory]: avvia un contenitore con la directory specificata come filesystem root.
  • systemd-nspawn --image [image]: avvia un contenitore con l'immagine del disco specificata come file system radice.
  • systemd-nspawn -bD [directory]: avvia un contenitore con la directory specificata come filesystem root e avvialo utilizzando il sistema init contenuto.
  • systemd-nspawn --private-network: avvia un contenitore con il proprio spazio dei nomi di rete privato.

13. systemd-machine-id-setup

systemd-machine-id-setup è un comando per inizializzare il /etc/machine-idfile su Linux. Il /etc/machine-idfile contiene un identificatore univoco a 128 bit per il sistema, utilizzato da vari componenti del sistema operativo e dalle applicazioni per tenere traccia del sistema e del suo stato. L'ID macchina deve essere univoco per ciascun sistema e rimanere invariato per tutta la durata del sistema, anche se i componenti hardware vengono sostituiti o il sistema viene reinstallato. L'ID macchina non è destinato a essere un segreto e può essere utilizzato dalle applicazioni per vari scopi, come il monitoraggio dell'utilizzo del sistema o il mantenimento di configurazioni specifiche del sistema. In generale, non è necessario eseguire manualmentesystemd-machine-id-setup, poiché viene eseguito automaticamente durante l'installazione del sistema o il primo avvio. Tuttavia, in alcuni casi, potrebbe essere necessario eseguirlo per generare o rigenerare l'ID macchina, ad esempio durante la creazione di immagini di sistema personalizzate o la clonazione di macchine virtuali.

  • systemd-machine-id-setup: Genera un nuovo ID macchina e memorizzalo in /etc/machine-id.

14. systemd-escape

systemd-escape è un comando che ti aiuta a convertire stringhe arbitrarie in un formato adatto all'uso come nomi di unità di sistema, percorsi di file o altri identificatori. È particolarmente utile quando si lavora con stringhe che contengono caratteri speciali, spazi bianchi o altri elementi che non sono consentiti o che possono causare conflitti nei nomi delle unità di sistema.

  • systemd-escape [string]: Escape della stringa specificata per l'uso in un nome di unità systemd.
  • systemd-escape --unescape [string]: Annulla l'escape di una stringa precedentemente sfuggita.

15. systemd-cat

systemd-cat è un comando che consente di inviare l'output di qualsiasi comando o programma direttamente al journal di systemd. Ciò può essere utile per acquisire l'output di processi o script di breve durata nel journal systemd, semplificando l'analisi, il filtraggio e la ricerca di voci di registro relative a tali processi. Usando systemd-cat, puoi reindirizzare l'output di un comando o di uno script direttamente al journal, oppure puoi eseguire un comando con systemd-catcome wrapper. Questo strumento supporta anche l'aggiunta di metadati personalizzati, come la priorità del registro o l'identificatore, alle voci di registro acquisite, che possono aiutare con l'organizzazione e il filtraggio dei registri nel journal. systemd-catfornisce un modo semplice e conveniente per integrare la registrazione personalizzata e l'output da varie fonti nel journal systemd centralizzato, consentendo una migliore gestione e analisi dei registri.

  • systemd-cat [command]: Esegue il comando specificato e inoltra il suo output al journal systemd.

16. systemd-notify

systemd-notify è un comando che consente ai servizi di inviare aggiornamenti di stato, rapporti sullo stato di avanzamento o altre notifiche al sistema systemd. È particolarmente utile per implementare protocolli di prontezza del servizio, segnalare modifiche allo stato del servizio o segnalare informazioni sullo stato specifiche del servizio. I servizi possono utilizzare systemd-notifyper inviare messaggi a systemd su un canale di comunicazione chiamato socket di notifica. Questa utility supporta vari tipi di messaggi, come READY, STATUS, ERRNO, MAINPID e WATCHDOG. Ad esempio, un servizio può utilizzare il messaggio READY per informare systemd che è stato avviato correttamente ed è pronto per elaborare le richieste. Usandosystemd-notify, i servizi possono comunicare con systemd in modo più efficace, garantendo una corretta gestione, monitoraggio e coordinamento dei servizi. Questa utility è particolarmente utile per i servizi a esecuzione prolungata o per quelli con procedure di inizializzazione complesse che devono segnalare il proprio stato a systemd.

  • systemd-notify --ready: Invia una notifica a systemd indicando che il servizio è pronto.

17. systemd-tmpfiles

systemd-tmpfiles è uno strumento a riga di comando e un sistema di configurazione associato per la gestione di file e directory temporanei su Linux abilitato per systemd. Fornisce un modo standardizzato e flessibile per creare, pulire e rimuovere directory e file temporanei durante l'avvio, l'arresto del sistema o su base periodica. systemd-tmpfilesutilizza i file di configurazione situati nelle directory , e per definire le regole e le azioni per la gestione dei file /usr/lib/tmpfiles.d/temporanei /etc/tmpfiles.d//run/tmpfiles.d/Questi file di configurazione contengono direttive che specificano i percorsi dei file, le autorizzazioni di accesso, la proprietà e altri attributi, nonché le politiche di pulizia, come i limiti di durata e dimensioni.systemd-tmpfilesdi solito viene eseguito automaticamente da systemd in varie fasi del ciclo di vita del sistema, ma può anche essere richiamato manualmente per applicare le azioni specificate, come la creazione o la pulizia di file e directory temporanei. Utilizzando systemd-tmpfiles, è possibile garantire una corretta gestione e pulizia di directory e file temporanei, contribuendo a mantenere un sistema pulito e organizzato, riducendo il rischio di fughe di dati e risparmiando spazio su disco.

  • systemd-tmpfiles --create: Crea file e directory volatili come definito nei file di configurazione.
  • systemd-tmpfiles --clean: Elimina i file e le directory vecchi e scaduti come definito nei file di configurazione.

18. systemd-run

systemd-run è un comando che consente di eseguire un comando o uno script come servizio systemd transitorio o unità di ambito su sistemi Linux abilitati per systemd. Le unità transitorie vengono create dinamicamente in fase di esecuzione e rimosse automaticamente quando non sono più necessarie o quando il sistema viene riavviato. Questo comando fornisce un'ampia gamma di opzioni per la configurazione delle unità create, inclusi i limiti delle risorse, le dipendenze, le variabili di ambiente e i criteri di riavvio, tra gli altri.

  • systemd-run --unit=[name] [command]: esegue il comando specificato come servizio transitorio con il nome specificato.
  • systemd-run --scope [command]: esegue il comando specificato come servizio temporaneo in un nuovo ambito.

19. systemd-mount

systemd-mount è un'utilità della riga di comando che consente di montare e gestire i file system utilizzando il sistema systemd. Fornisce un modo conveniente per montare i file system come unità .mount transitorie, che vengono gestite automaticamente da systemd. Il comando supporta anche varie opzioni per la configurazione dei file system montati, come le opzioni di montaggio, i timeout e le dipendenze su altre unità systemd.

  • systemd-mount [device] [path]: monta il dispositivo specificato nel percorso specificato, creando un'unità di montaggio in systemd.
  • systemd-mount --umount [path]: Smonta il percorso specificato, arrestando l'unità di montaggio systemd associata.

20. systemd-ask-password

systemd-ask-password consente di interrogare le password o le passphrase degli utenti in modo sicuro e coerente su Linux abilitato per systemd. Questo comando viene in genere utilizzato da servizi di sistema o script che richiedono l'autenticazione dell'utente o l'input segreto, come il montaggio di file system crittografati o lo sblocco di archivi di chiavi sicuri. systemd-ask-passwordfunziona visualizzando una richiesta di password all'utente, sulla console, in una finestra di dialogo grafica o tramite una connessione remota, a seconda dell'ambiente e degli agenti password disponibili. La password o la passphrase inserita viene quindi trasmessa in modo sicuro al servizio o allo script richiedente.

  • systemd-ask-password: richiede all'utente una password o una passphrase con il messaggio specificato.

21. systemd-inhibit

systemd-inhibit consente di eseguire un programma o uno script bloccando temporaneamente operazioni di sistema specifiche, come l'arresto, il riavvio o la sospensione. È particolarmente utile per garantire che le attività critiche o le operazioni di manutenzione non vengano interrotte da un improvviso cambiamento di stato del sistema. systemd-inhibitfunziona creando un "blocco inibitore" che impedisce l'esecuzione delle operazioni di sistema specificate mentre il programma o lo script è in esecuzione. È possibile specificare il tipo di blocco inibitore e un motivo descrittivo per il suo utilizzo. I tipi comuni di blocchi includono "arresto", "sospensione", "inattivo" e "sospensione".

  • systemd-inhibit --what=[operation] [command]: esegue il comando specificato mentre inibisce l'operazione specificata (ad esempio, spegnimento, sospensione, inattività).

22. systemd-dissect

systemd-dissect è uno strumento da riga di comando che fornisce la funzionalità per ispezionare e analizzare le immagini del disco e gli alberi del file system. È particolarmente utile per esaminare le immagini del disco che contengono i file del sistema operativo, come quelli utilizzati per i contenitori, le macchine virtuali o l'installazione del sistema. Usando systemd-dissect, puoi ispezionare e analizzare facilmente le immagini del disco e gli alberi del file system, che possono essere utili quando lavori con contenitori, macchine virtuali o crei immagini di sistema personalizzate. Fornisce un modo conveniente per esaminare il contenuto e la struttura delle immagini del disco senza doverle montare manualmente o utilizzare più strumenti per attività diverse.

  • systemd-dissect [image]: mostra un breve riepilogo del contenuto del disco o dell'immagine del sistema operativo specificato.
  • systemd-dissect --mount [image]: monta il disco o l'immagine del sistema operativo specificati, mostrando un riepilogo del suo contenuto.

23. systemd-resolve

systemd-resolve è un comando che fa parte del systemd-resolvedservizio, che fornisce la risoluzione dei nomi di rete e la memorizzazione nella cache su Linux abilitato per systemd. Il comando consente di interrogare e gestire il resolver DNS e la cache forniti da systemd-resolved.

  • systemd-resolve [hostname]: risolve il nome host specificato in un indirizzo IP utilizzando il resolver DNS di sistema.
  • systemd-resolve --status: mostra lo stato corrente del resolver DNS del sistema, inclusi i server DNS configurati e i domini di ricerca.

24. systemd-firstboot

systemd-firstboot è un comando che consente di inizializzare varie impostazioni di sistema di base su Linux abilitato per systemd. Viene in genere utilizzato durante il primo avvio di un sistema appena installato o durante la creazione di immagini di sistema personalizzate per la distribuzione. L'utilità può essere utilizzata sia in modalità interattiva che non interattiva. In modalità interattiva, systemd-firstbootrichiede all'utente le informazioni richieste, mentre in modalità non interattiva, le impostazioni vengono fornite tramite opzioni della riga di comando o file di configurazione.

  • systemd-firstboot --setup-machine-id: imposta l'ID macchina al primo avvio.
  • systemd-firstboot --setup-root-password: imposta la password di root al primo avvio.

Questi sono alcuni dei systemd i comandi più utili per gestire vari aspetti del tuo sistema Linux. Ricorda che la maggior parte di questi comandi richiede privilegi amministrativi, quindi anteponi sudo se necessario.