ExpertLinux

Démarrage automatique d’un service sur Red Hat, CentOS, Fedora

Démarrer un service en automatique est une pratique fondamentale en administration Linux qui sert principalement à garantir que les applications critiques sont disponibles sans intervention humaine, par exemple après un redémarrage système (reboot) ou un crash du processus.

Pour mettre en place le démarrage automatique d’un service sous Linux, la méthode utilisée par la quasi-totalité des distributions modernes (Red Hat, Ubuntu, Debian, CentOS, Fedora, etc.), on utilise systemd. On prend ici l’exemple d’un logiciel installé dans /opt/logiciel avec pour démarrer « logiciel_svc ».

Le tutoriel ci-dessous montre comment ajouter le démarrage automatique d’un logiciel en tant que service système, sur les distributions Linux basées sur le noyau Red Hat, c’est-à-dire ses dérivés Fedora, CentOS, Oracle Linux, Alma Linux ou encore Rocky Linux.

Créer un service en démarrage automatique sur Red Hat / Fedora / CentOS

  1. Ouvrir un nouveau fichier de configuration :
sudo vi /etc/systemd/system/logiciel.service
  1. Copier / coller ce bloc de texte pour une configuration typique avec quelques paramètres de sécurité
[Unit]
Description=Service Logiciel Exemple
# Verifie que le reseau est pret avant de demarrer le service
After=network.target

[Service]
Type=simple
# Compte utilisateur qui executera le processus
User=root
# Repertoire de travail
WorkingDirectory=/opt/logiciel
# Chemin complet de l executable
ExecStart=/opt/logiciel/logiciel_svc
# Redemarrage automatique si le service plante
Restart=always
RestartSec=10

[Install]
# Permet de lancer le service au demarrage du systeme (mode multi utilisateurs)
WantedBy=multi-user.target
  1. Enregistrer et quitter ce fichier logiciel.service.

  2. Ajouter les droits d’exécution sur ce fichier :

chmod +x /chemin/vers/executable
  1. Recharger la configuration de system.d :
sudo systemctl daemon-reload
  1. Activer le service :
sudo systemctl enable logiciel.service
  1. Démarrer le service immédiatement :
sudo systemctl start logiciel.service

D’autres commandes utiles

Vérifier si le service est actif :

systemctl status logiciel.service

Tester l’arrêt manuel du service (et le relancer derrière si besoin) :

systemctl stop logiciel.service

Voir les éventuelles erreurs dans le log :

journalctl -u logiciel.service -f

Enfin, on peut aussi désactiver le démarrage automatique du service :

systemctl disable mon-service

et donc « enable » pour le réactiver ensuite.

Publicité

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page