Linux, création d’un service

Voici quelques étapes pour créer facilement un service sur son système Linux avec l’outil Systemd.Que ce soit pour comprendre comment votre système fait fonctionner ses différents services ou bien pour créer vous-même un service, vous allez voir que cela ne nécessite pas d’avoir des connaissances pointues dans l’informatique et dans l’administration d’un système Linux.

La mise en place d’un service, c’est-à-dire d’un daemon qui fonctionnera en arrière plan est relativement simple, nous allons voir comment le réaliser en quelques étapes.

Nous allons utiliser l’outil Systemd qui est un outil largement employé sur les systèmes Débian.

Création du script de notre service

Pour notre test, nous allons prendre un petit script en bash que j’ai vu dans un hors-série de Linux Pratique.

J’ai simplement constaté une petite erreur, c’est pour ça que je publie cet article

Donc commencer par éditer un fichier nommé hello-service et y insérer :

#!/bin/bash

PID_FILE='/var/run/hello-service.pid'

start(){
  echo 'Service démarré'
  echo $$ > ${PID_FILE}
  ncat -l 4444
}

stop(){
  echo 'Service arrêté'
  kill $(cat "${PID_FILE}")
  rm -f "${PID_FILE}"
}

status(){
  if [ -e "${PID_FILE}" ]; then
    echo 'Hello'
  else
    echo 'Service éteint'
  fi
}

case "${1}" in
  'start')
    start
    ;;
  'stop')
    stop
    ;;
  'status')
    status
    ;;
  *)
    start
    ;;
esac

Maintenant, nous allons le rendre exécutable, pour ce faire : sudo chmod +x hello-service

Test de notre script

Pour s’assurer que le script est correct, nous allons procéder à quelques tests, il suffit de faire :

  • sudo bash hello-service start, cela démarre le service, vous ne récupérez pas la main, cela est normal, pour la suite procéder dans un autre terminal
  • sudo bash hello-service status, donne l’état du status
  • sudo bash hello-service stop, ferme le service

Mise en place du service

Maintenant, nous allons simplement configurer le service, vous allez créer le fichier hello-service.service dans /etc/systemd/system et y insérer :

[Unit]
Description= Un test de création de service

[Service]
PIDFile=/run/var/hello-service.pid
ExecStart=/home/zigomato/test/bash/service/hello-service

[Install]

La partie Unit est un emplacement pour les informations du service, et la partie Service permet de spécifier le l’identifiant du processus (PIDFile) et ExecStart le chemin de votre script (dans les deux cas, j’ai laissé les miens).

Mise en route du service

Voilà qui est fini, pour utiliser notre service, il suffit de faire ces commandes suivantes :

  • sudo systemctl start hello-service.service , pour le démarrer
  • sudo systemctl status hello-service.service, pour le status du processus
  • sudo systemctl stop hello-service.service, pour le stopper

Conclusion

Vous êtes désormais capable de créer un service de base pour votre système, il existe plein d’options de configuration, je vous invite à aller visiter la documentation Ubuntu.

Laisser un commentaire