GNU/Linux >> Tutoriels Linux >  >> Ubuntu

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

Systemd est un gestionnaire de services qui vous fournit des fonctionnalités de gestion des démons, de suivi des processus, de montage, de montage automatique. Il utilise un groupe de contrôle Linux pour gérer la tâche. Il remplace l'ancien initd et est disponible dans les distributions Debian, Fedora, RedHat, ubuntu, centos et arch Linux.

Dans cet article, je vais vous montrer comment créer un service en utilisant systemd. Je vais créer un script manuel qui agira comme un processus pour trouver l'utilisation du disque du système Linux.

Commençons. Créez un script bash qui redirige la date et l'utilisation du disque dans un fichier. Vous pouvez créer des fichiers à n'importe quel endroit. Ici je vais faire dans le répertoire exécutable /usr/bin

$ sudo vim /usr/bin/script.sh

Copiez et collez le script suivant et enregistrez votre fichier.

#!/bin/bash# Le script génère l'utilisation du disque par le système et le stocke dans un fichier tandis que truedodate>> /var/storage-monitor.txtsudo du -sch />> /var/storage-monitor.txtsleep 120done 

Rendez le fichier exécutable en exécutant la commande suivante.

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

Maintenant, créons un service pour exécuter le script. Créez simplement un fichier dans le répertoire suivant. Notez que vous pouvez donner n'importe quel nom, mais il doit se terminer par l'extension .service.

$ vim /etc/systemd/system/monitor-disk.service

Et ajoutez ce qui suit,

[Unit]Description=Mon service de surveillance de disqueDocumentation=https://www.kernel.org/#After=networking.service[Service]Type=simpleUser=rootGroup=rootTimeoutStartSec=0Restart=on-failureRestartSec=30s#ExecStartPre=ExecStart=/usr/bin/script.shSyslogIdentifier=Diskutilization#ExecStop=[Install]WantedBy=multi-user.target

Explication

  • La section [Unité] comprend la description et les détails de la documentation. Ici, j'ai mentionné "Après" qui indique que le service que nous allons créer doit être exécuté en premier.
  • La section [Service] définit le type de service, le nom d'utilisateur, le groupe, ce qu'il faut faire en cas d'échec, le délai de redémarrage. Le principal est 'ExecStart' qui dit de démarrer notre fichier de script. Vous pouvez également définir "ExecStartPre" pour définir quoi que ce soit avant le fichier de script réel. ‘SyslogIdentifier’ est le mot-clé pour identifier notre service dans syslog. De même, ExecStop est l'instruction indiquant ce qu'il faut faire pour arrêter le service.
  • La section [Install] est utilisée pour définir différents niveaux de cible dans le système.

Enregistrez simplement le fichier et démarrez le service à l'aide de la commande systemctl.

$ systemctl start monitor-disk.service

Vérifiez l'état du service à l'aide de la commande systemctl status. Vous pouvez également voir le nom du service, le formulaire de fichier où le service systemd est chargé, la documentation, le processus en cours d'exécution et les journaux.

$ systemctl status monitor-disk.service

Vérifiez que votre script fonctionne correctement en consultant le fichier défini dans le fichier de script.

$ cat /var/storage-monitor.txt

Vous pouvez également vérifier la fonction d'activation et de désactivation du gestionnaire systemd.

$ systemctl enable monitor-disk.service
$ systemctl désactiver monitor-disk.service

Vérifiez également en arrêtant et en redémarrant le service. Aucune erreur ne doit être renvoyée.

$ systemctl stop monitor-disk.service
$ systemctl restart monitor-disk.service

Systemd active également la journalisation par défaut dans syslog. Ainsi, vous pouvez afficher le journal en direct du service à l'aide de la commande suivante. Recherchez le mot-clé ‘SyslogIdentifier=Diskutilization’

vous avez refusé dans le fichier de service ci-dessus.

$ tail -f /var/log/syslog

Conclusion

Cet article vous montre comment exécuter votre propre script shell en tant que service systemd. Nous espérons que vous avez appris à créer votre propre service. N'hésitez pas à envoyer vos commentaires.


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

  2. Comment créer un fichier temporaire en script shell ?

  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 changer un mot dans un fichier avec un script shell Linux

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

Comment exécuter le fichier Jar dans Ubuntu Linux

Comment exécuter un script au démarrage dans Debian 11

Comment créer et exécuter un script Shell dans Ubuntu 20.04 LTS

Comment exécuter les commandes de fichier .sh tout en une fois sous Linux

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