Systemd è un'applicazione software che fornisce una serie di componenti di sistema per i sistemi operativi Linux. È il primo servizio che inizializza la sequenza di avvio. Funziona sempre con pid 1. Questo aiuta anche a gestire il sistema e il servizio applicativo 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 richiede di essere eseguito solo all'avvio o di essere eseguito sempre.
Nel nostro tutorial precedente ti abbiamo fornito le istruzioni per eseguire uno script Python usando Systemd. Questo tutorial copre l'esecuzione di uno script di shell come servizio Systemd.
Fase 1:crea uno script di shell
Prima di tutto, crea uno script di shell di esempio da eseguire sempre finché il sistema non è in esecuzione. Useremo bash while loop per funzionare all'infinito.
sudo nano /usr/bin/script.sh
Aggiungi il seguente script di esempio.
Shell1234567 | #!/bin/bash while truedo // Le tue affermazioni vanno qui sleep 10done |
Salva lo script e imposta il permesso di esecuzione.
sudo chmod +x /usr/bin/script.sh
Per eseguire uno script una volta durante l'avvio del sistema non è necessario alcun ciclo infinito. Invece dello script precedente, puoi utilizzare lo script della shell per l'esecuzione come servizio Systemd.
Fase 2:crea un file SystemD
Quindi, crea un file di servizio per il systemd sul tuo sistema. Questo file deve avere .service
estensione e salvato sotto /lib/systemd/system/
directory
sudo nano /lib/systemd/system/shellscript.service
Ora aggiungi il seguente contenuto e aggiorna il nome e il percorso del file di script. Puoi anche modificare la descrizione del servizio.
[Unit] Description=My Shell Script [Service] ExecStart=/usr/bin/script.sh [Install] WantedBy=multi-user.target
Salva il file e chiudilo.
Fase 3:abilita il nuovo servizio
Il tuo servizio di sistema è stato aggiunto al tuo servizio. Ricarichiamo il demone systemctl per leggere il nuovo file. Devi ricaricare questo demone ogni volta dopo aver apportato modifiche al 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, verifica che lo script sia attivo e funzionante come servizio systemd.
sudo systemctl status shellscript.service
L'output è simile al seguente:
Conclusione
Questo tutorial ti ha aiutato a configurare uno script di shell come servizio systemd.