systemd è un sistema di init e un gestore di servizi utilizzato dalla maggior parte delle distribuzioni Linux moderne. Sostituisce i tradizionali sistemi SysV e Upstart, offrendo funzionalità avanzate come l'avvio parallelo dei servizi, il tracciamento dei processi e il controllo dettagliato dello stato dei servizi.
Caratteristiche principali di systemd
- Avvio parallelo dei servizi per migliorare la velocità di boot
- Controllo centralizzato dei log tramite
journald
- Gestione delle dipendenze tra servizi
- Supporto per socket e D-Bus activation
- Snapshot e restore dello stato del sistema
Comandi fondamentali
I comandi principali per interagire con systemd
sono forniti tramite systemctl
. Ecco alcuni esempi:
# Avviare un servizio
sudo systemctl start nome-servizio
# Fermare un servizio
sudo systemctl stop nome-servizio
# Riavviare un servizio
sudo systemctl restart nome-servizio
# Abilitare un servizio all'avvio
sudo systemctl enable nome-servizio
# Disabilitare un servizio
sudo systemctl disable nome-servizio
# Controllare lo stato di un servizio
systemctl status nome-servizio
Unit file in systemd
Ogni servizio gestito da systemd è descritto in un "unit file". Questi file sono normalmente posizionati in /etc/systemd/system/
o /lib/systemd/system/
.
Esempio di unit file per un servizio:
[Unit]
Description=Esempio di Servizio
After=network.target
[Service]
ExecStart=/usr/bin/esempio
Restart=on-failure
[Install]
WantedBy=multi-user.target
Logging con journald
Systemd include anche un sistema di logging chiamato journald
, che raccoglie e organizza i messaggi di log.
# Visualizzare tutti i log
journalctl
# Log relativi a un servizio specifico
journalctl -u nome-servizio
# Log persistenti (se abilitati)
sudo mkdir -p /var/log/journal
sudo systemd-tmpfiles --create --prefix /var/log/journal
Conclusioni
Systemd ha rivoluzionato la gestione dei servizi in Linux grazie a un design modulare, funzionalità avanzate e una migliore integrazione con l'intero sistema operativo. Anche se non è privo di critiche, resta uno strumento potente e ormai standard per amministratori di sistema e sviluppatori.