Aller au contenu

Serveur Services

Lancement automatique du programme avec un service SYSTEMD#

Principe#

SystemD est le systeme d'initialisation par défaut d'une majorité de distribution Linux moderne. Il permet de lancer des programmes au démarage du système en gérant leurs cycle de vie leurs dépendances.

Pour chaque Service , SystemeD se base sur un fichier de configuration, qui va indiquer comment se lance le programme. Une bonne introduction est disponible sur ce site : https://lea-linux.org/documentations/Systemd

La documentation officielle sur celui ci : https://www.freedesktop.org/software/systemd/man/

Creation d'un service pour lancer un serveur NODE.JS#

Fichier de configuration minimal de notre service à déposer dans le dossier /etc/systemd/system/

[Unit]
Description=weather fake data generator

[Service]
WorkingDirectory=/opt/fakeSonde
ExecStartPre=/usr/bin/npm install
ExecStart=/usr/bin/npm start

[Install]
WantedBy=multi-user.target
Deux parties sont importantes ici, le ExecStart qui défini comment démarrer le programme et le WantedBy qui indique dans quel mode linux installer le programme https://www.linux.com/tutorials/intro-systemd-runlevels-and-service-management-commands/.

On utilise ici npm pour lancer le serveur node avec le script start.

Lancement du service#

Une fois le fichier monservice.service déposé dans le dossier /etc/systemd/system/ (en root) , il est reconnu par systemD. La commande sudo systemctl va permettre d'interagir avec notre service :

  • sudo systemctl status monservice pour avoir son état
  • sudo systemctl start monservice pour le démarrer
  • sudo systemctl stop monservice pour l'arrêter
  • sudo systemctl restart monservice pour le redémarrer
  • sudo systemctl enable monservice pour l'ajouter au démarage du système
  • sudo journalctl -xe -u monservice pour afficher les logs