Systemd è un potente sistema di init utilizzato dalla maggior parte delle moderne distribuzioni Linux per gestire i processi di sistema e di servizio. Una delle sue caratteristiche principali è la capacità di avviare automaticamente i servizi all’avvio. Questo articolo vi guiderà attraverso il processo di configurazione di un servizio da avviare all’avvio utilizzando Systemd, assicurando che le vostre applicazioni critiche vengano eseguite in modo affidabile ogni volta che il sistema viene riavviato.
Systemd utilizza file di unità per definire e gestire i servizi. Questi file di unità sono memorizzati in:
/etc/systemd/system/
e /lib/systemd/system/
~/.config/systemd/user/
Un file di unità di servizio ha tipicamente un’estensione .service
e contiene direttive di configurazione che indicano a Systemd come gestire il servizio.
Per configurare un servizio da avviare all’avvio, è necessario creare un file di servizio Systemd. Ecco un esempio di come creare un servizio personalizzato.
Eseguite il seguente comando per aprire un nuovo file di servizio in un editor di testo:
sudo nano /etc/systemd/system/myservice.service
Aggiungere il seguente contenuto, modificandolo in base alla propria applicazione:
[Unit]
Description=My Custom Service
After=network.target
[Service]
ExecStart=/usr/bin/myapp
Restart=always
User=myuser
Group=mygroup
WorkingDirectory=/home/myuser/
[Install]
WantedBy=multi-user.target
Spiegazione:
After=network.target
: Assicura l’avvio del servizio dopo che la rete è disponibile.ExecStart=/usr/bin/myapp
: Definisce il comando per avviare il servizio.Restart=always
: Assicura che il servizio venga riavviato in caso di errore.User=myuser
e Group=mygroup
: Esegue il servizio sotto un utente e un gruppo specifici.WantedBy=multi-user.target
: Assicura che il servizio venga avviato in modalità multiutente (livello di esecuzione predefinito per la maggior parte dei server).Una volta creato il file di servizio, ricaricare Systemd per riconoscere il nuovo servizio:
sudo systemctl daemon-reload
Abilitare il servizio all’avvio:
sudo systemctl enable myservice.service
Avviare il servizio manualmente:
sudo systemctl start myservice.service
Verificare lo stato del servizio:
sudo systemctl status myservice.service
Se tutto è stato configurato correttamente, si dovrebbe vedere l’output che indica che il servizio è in esecuzione.
Ecco alcuni comandi utili per gestire il servizio Systemd:
sudo systemctl restart myservice.service
sudo systemctl stop myservice.service
sudo systemctl disable myservice.service
journalctl -u myservice.service --no-pager
L’uso di Systemd per avviare i servizi all’avvio è un modo semplice ed efficace per garantire che le applicazioni critiche rimangano in esecuzione dopo il riavvio del sistema. Configurando correttamente un file di servizio Systemd, abilitandolo all’avvio e gestendolo con systemctl
, è possibile migliorare l’affidabilità e l’automazione dell’ambiente Linux.