Come eseguire uno script da shell come servizio SystemD su Linux

16 apr 2021 2 min di lettura
Come eseguire uno script da shell come servizio SystemD su Linux
Indice dei contenuti

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.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.