Introduction

Systemd est un puissant système d’initialisation utilisé par la plupart des distributions Linux modernes pour gérer les processus du système et des services. L’une de ses principales fonctionnalités est la possibilité de démarrer automatiquement les services au démarrage. Cet article vous guidera tout au long du processus de configuration d’un service pour qu’il démarre au démarrage à l’aide de Systemd, garantissant ainsi que vos applications critiques fonctionnent de manière fiable chaque fois que le système est redémarré.

Comprendre les services Systemd

Systemd utilise des fichiers unitaires pour définir et gérer les services. Ces fichiers unitaires sont stockés dans :

  • Les services du système : /etc/systemd/system/ et /lib/systemd/system/
  • Services spécifiques à l’utilisateur : ~/.config/systemd/user/

Un fichier d’unité de service a généralement une extension .service et contient des directives de configuration qui indiquent à Systemd comment gérer le service.

Création d’un fichier de service Systemd

Pour configurer un service afin qu’il démarre au démarrage, vous devez créer un fichier de service Systemd. Voici un exemple de création d’un service personnalisé.

1. Création du fichier de service

Exécutez la commande suivante pour ouvrir un nouveau fichier de service dans un éditeur de texte :

sudo nano /etc/systemd/system/myservice.service

2. Définir la configuration du service

Ajoutez le contenu suivant, en le modifiant en fonction de votre application :

[Unit]
Description=My Custom Service
After=network.target

[Service]
ExecStart=/usr/bin/myapp
Restart=always
User=myuser
Group=mygroup
WorkingDirectory=/home/myuser/

[Install]
WantedBy=multi-user.target

Explication :

  • After=network.target: Assure que le service démarre une fois que le réseau est disponible.
  • ExecStart=/usr/bin/myapp: Définit la commande de démarrage du service.
  • Restart=toujours: Assure le redémarrage du service en cas d’échec.
  • User=myuser et Group=mygroup: Exécute le service sous un utilisateur et un groupe spécifiques.
  • WantedBy=multi-user.target: Assure que le service démarre en mode multi-utilisateur (niveau d’exécution par défaut pour la plupart des serveurs).

3. Recharger Systemd et activer le service

Une fois le fichier de service créé, rechargez Systemd pour qu’il reconnaisse le nouveau service :

sudo systemctl daemon-reload

Activez le service pour qu’il démarre au démarrage :

sudo systemctl enable myservice.service

4. Démarrer et vérifier le service

Démarrez le service manuellement :

sudo systemctl start myservice.service

Vérifier l’état du service :

sudo systemctl status myservice.service

Si tout est configuré correctement, vous devriez voir un message indiquant que le service est en cours d’exécution.

Gestion du service

Voici quelques commandes utiles pour gérer votre service Systemd :

  • Redémarrer le service :
    sudo systemctl restart myservice.service
  • Arrêter le service :
    sudo systemctl stop myservice.service
  • Désactivez le service pour qu’il ne démarre pas au démarrage :
    sudo systemctl disable myservice.service
  • Affichez les journaux relatifs au service :
    journalctl -u myservice.service --no-pager

Conclusion

L’utilisation de Systemd pour lancer des services au démarrage est un moyen simple et efficace de s’assurer que les applications critiques continuent de fonctionner après le redémarrage du système. En configurant correctement un fichier de service Systemd, en l’activant au démarrage et en le gérant avec systemctl, vous pouvez améliorer la fiabilité et l’automatisation de votre environnement Linux.