« Deamon avec systemd » : différence entre les versions
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=, ouExecStop=.