Introduzione
Systemd è un'applicazione software che fornisce una serie di componenti di sistema per i sistemi operativi Linux. È il primo servizio a inizializzare la sequenza di avvio. Funziona sempre con pid 1. Questo aiuta anche a gestire il sistema e il servizio dell'applicazione sul nostro sistema operativo Linux.
Possiamo anche eseguire qualsiasi script personalizzato come servizio systemd. Aiuta lo script ad avviarsi all'avvio del sistema. Questo può essere utile per eseguire qualsiasi script che deve essere eseguito solo all'avvio o per essere eseguito sempre.
Questo tutorial spiega come eseguire uno script di shell come servizio Systemd.
Creare uno script di shell
Prima di tutto, crea uno script di shell di esempio da eseguire sempre finché il sistema è in esecuzione.
sudo vi /usr/bin/script.sh
Aggiungi il seguente script di esempio:
#!/bin/bash
while true
do
// Your statements here
sleep 10
done
Salva lo script e imposta i permessi di esecuzione con il comando chmod:
sudo chmod +x /usr/bin/script.sh
Per eseguire uno script una volta durante l'avvio del sistema non è richiesto alcun ciclo infinito. Invece dello script precedente, puoi utilizzare lo script della shell per eseguire come servizio Systemd.
Creare un file SystemD
Crea un file di servizio per systemd sul tuo sistema. Questo file deve avere estensione .service
e salvato nella directory /lib/systemd/system/
:
sudo vi /lib/systemd/system/shellscript.service
Ora aggiungi il seguente contenuto e aggiorna il nome del file dello script e il percorso. Puoi anche modificare la descrizione del servizio:
[Unit]
Description=My Shell Script
[Service]
ExecStart=/usr/bin/script.sh
[Install]
WantedBy=multi-user.target
Abilitare il nuovo servizio
Il tuo servizio di sistema è stato aggiunto al tuo servizio. Ricarichiamo il demone systemctl per leggere il nuovo file. È necessario ricaricare questo demone ogni volta dopo aver apportato modifiche nel file .service.
sudo systemctl daemon-reload
Ora abilita l'avvio del servizio all'avvio del sistema, avvia anche il servizio utilizzando i seguenti comandi:
sudo systemctl enable shellscript.service
sudo systemctl start shellscript.service
Infine verificare che lo script sia attivo e in esecuzione come servizio systemd:
sudo systemctl status shellscript.service
Conclusione
Questo tutorial ti ha aiutato a configurare e avviare uno script di shell come servizio systemd su Linux.