« Deamon avec systemd » : différence entre les versions

De knowledge
Aller à la navigation Aller à la recherche
(Page créée avec « = 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 : <syntaxhighlight lang="bash"> #!/bin/bash # Exemple : activer un environnement virtuel et lancer une application source /home/utilisateur/chemin/env/bin/activate exec n... »)
 
Ligne 10 : Ligne 10 :
#!/bin/bash
#!/bin/bash
# Exemple : activer un environnement virtuel et lancer une application
# Exemple : activer un environnement virtuel et lancer une application
source /home/utilisateur/chemin/env/bin/activate
source /home/utilisateur/chemin/env/bin/activate # SI c'est du code python avec un virtual env
exec nom_de_la_commande --option
exec nom_de_la_commande --option
</syntaxhighlight>
</syntaxhighlight>

Version du 26 septembre 2025 à 22:49

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=.