GNU/Linux >> Tutoriels Linux >  >> Linux

Comment exécuter un script Shell en tant que service SystemD sous Linux

Systemd est une application logicielle qui fournit une gamme de composants système pour les systèmes d'exploitation Linux. C'est le premier service à initialiser la séquence de démarrage. Cela fonctionne toujours avec le pid 1. Cela aide également à gérer le système et le service d'application sur notre système d'exploitation Linux.

Nous pouvons également exécuter n'importe quel script personnalisé en tant que service systemd. Cela aide le script à démarrer au démarrage du système. Cela peut vous être utile pour exécuter n'importe quel script qui doit s'exécuter uniquement au démarrage ou s'exécuter en permanence.

Dans notre précédent didacticiel, nous vous avons fourni des instructions pour exécuter un script Python à l'aide de Systemd. Ce tutoriel couvre l'exécution d'un script shell en tant que service Systemd.

Étape 1 - Créer un script shell

Tout d'abord, créez un exemple de script shell à exécuter jusqu'à ce que le système soit en cours d'exécution. Nous utiliserons bash while loop pour s'exécuter à l'infini.

sudo nano /usr/bin/script.sh 

Ajoutez l'exemple de script suivant.

Shell
1234567 #!/bin/bash while truedo // Vos instructions vont ici sleep 10done

Enregistrez le script et définissez l'autorisation d'exécution.

sudo chmod +x /usr/bin/script.sh 

Exécuter un script une fois au démarrage du système ne nécessite aucune boucle infinie. Au lieu du script ci-dessus, vous pouvez utiliser votre script shell pour s'exécuter en tant que service Systemd.

Étape 2 - Créer un fichier SystemD

Ensuite, créez un fichier de service pour le systemd sur votre système. Ce fichier doit avoir .service extension et enregistré sous le sous /lib/systemd/system/ répertoire

sudo nano /lib/systemd/system/shellscript.service 

Maintenant, ajoutez le contenu suivant et mettez à jour le nom et l'emplacement du fichier de script. Vous pouvez également modifier la description du service.

[Unit]
Description=My Shell Script

[Service]
ExecStart=/usr/bin/script.sh

[Install]
WantedBy=multi-user.target

Enregistrez le fichier et fermez-le.

Étape 3 :Activer le nouveau service

Votre service système a été ajouté à votre service. Rechargeons le démon systemctl pour lire le nouveau fichier. Vous devez recharger ce démon à chaque fois après avoir apporté des modifications au fichier .service.

sudo systemctl daemon-reload 

Activez maintenant le service pour qu'il démarre au démarrage du système, démarrez également le service à l'aide des commandes suivantes.

sudo systemctl enable shellscript.service 
sudo systemctl start shellscript.service 

Enfin, vérifiez que le script est opérationnel en tant que service systemd.

sudo systemctl status shellscript.service 

La sortie ressemble à ci-dessous :

Conclusion

Ce tutoriel vous a aidé à configurer un script shell en tant que service systemd.


Linux
  1. Comment créer un service Systemd sous Linux

  2. Linux - Comment exécuter un script avec Systemd juste avant l'arrêt ?

  3. Comment exécuter un script shell en arrière-plan ?

  4. Comment faire fonctionner un script Python comme un service ou un démon sous Linux

  5. Comment exécuter un script en arrière-plan (linux openwrt) ?

Comment exécuter des conteneurs en tant que service Systemd avec Podman

Comment exécuter une commande / un script Linux Shell en arrière-plan

Comment exécuter Windows 95 sous Linux

Comment exécuter un script Shell en tant que service Systemd sous Linux

Comment stocker une commande Linux en tant que variable dans un script shell

Comment créer et exécuter un script shell dans Ubuntu 22.04