Deamon avec systemd

De knowledge
Aller à la navigation Aller à la recherche

Créer un service systemd personnalisé

Cette page décrit comment créer un service systemd pour exécuter un script ou une application en tant que démon, au démarrage du système.

1. Préparer le script de lancement

Créer un script exécutable contenant les commandes à lancer :

#!/bin/bash
# Exemple : activer un environnement virtuel et lancer une application
source /home/utilisateur/chemin/env/bin/activate # SI c'est du code python avec un virtual env
exec nom_de_la_commande --option

Rendre le script exécutable :

chmod +x /home/utilisateur/chemin/start.sh

2. Créer le fichier de service systemd

Créer un fichier dans /etc/systemd/system/ :

[Unit]
Description=Nom du service
After=network.target

[Service]
Type=simple
User=utilisateur
WorkingDirectory=/home/utilisateur/chemin
ExecStart=/home/utilisateur/chemin/start.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

Adapter les chemins et le nom d’utilisateur selon le contexte.

3. Activer et démarrer le service

sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable nomduservice.service
sudo systemctl start nomduservice.service

4. Vérifier le statut et les logs

systemctl status nomduservice.service
journalctl -u nomduservice.service

Notes

  • Le service sera lancé automatiquement au démarrage.
  • Le script peut contenir n’importe quelle commande : serveur web, tâche de fond, tunnel, etc.
  • Pour les services complexes, envisager Type=exec, Environment=, ou ExecStop=.