-
créer un service systemd
1. Créer un fichier de service
Les fichiers de service se trouvent généralement dans /etc/systemd/system/.
Nommer le service avec l’extension .service (ex: mon_service.service) :
sudo vi /etc/systemd/system/mon_service.service
2. Éditer le fichier avec la configuration de base
[Unit] Description=Description de mon service After=network.target # Dépendances (optionnel) [Service] Type=simple ExecStart=/chemin/vers/le/script Restart=on-failure # Redémarrage automatique en cas d'échec User=toto # (Optionnel) Exécuter en tant qu'un utilisateur spécifique WorkingDirectory=/chemin/vers/repertoire # (Optionnel) [Install] WantedBy=multi-user.target # Permet de démarrer au boot
[Unit]Métadonnées et dépendances.
[Service]Configuration de l’exécution.
[Install]Comportement à l’activation.3. Recharger systemd
sudo systemctl daemon-reload
4. Démarrer / arrêter le service
Démarrer / arrêter le service
sudo systemctl start mon_service
sudo systemctl stop mon_service
Vérifier l’état du service
sudo systemctl status mon_service
activer / désactiver le service au démarrage
sudo systemctl enable mon_service
sudo systemctl disable mon_service
Journal des logs :
sudo journalctl -u mon_service -f # Affiche les logs en temps réel
EXEMPLES
Un script Python (/home/toto/mon_script.py) à exécuter en tant que service :
[Unit] Description=Mon script Python [Service] Type=simple ExecStart=/usr/bin/python3 /home/toto/mon_script.py Restart=on-failure User=user WorkingDirectory=/home/user/ [Install] WantedBy=multi-user.target
Pour faire un montage spécial :
sudo vi /etc/systemd/system/mon_montage.mount [Unit] Description=Montage SSHFS After=network.target [Mount] What=utilisateur@serveur:/chemin/distant Where=/mnt/remote Type=fuse.sshfs Options=_netdev,IdentityFile=/home/toto/.ssh/id_ed25519,allow_other,reconnect [Install] WantedBy=multi-user.target
Activer le service
sudo systemctl enable --now mon_montage.mount
Voili, voilou !