Utiliser systemd pour lancer un service Linux au démarrage ⋆ ALexHost SRL

Test your skills on our all Hosting services and get 15% off!

Use code at checkout:

Skills
11.11.2024

Utiliser systemd pour lancer un service Linux au démarrage

Pour ceux qui gèrent des applications ou des services sur un hébergement VPS Linux, s’assurer que les services critiques démarrent automatiquement au démarrage est essentiel pour maintenir un fonctionnement ininterrompu. En utilisant

systemd
, un système init puissant et flexible, vous pouvez facilement configurer les services pour qu’ils se lancent dès le démarrage du système, ce qui est crucial pour les applications web, les bases de données et d’autres services essentiels fonctionnant dans des environnements VPS. Ce guide vous guidera dans la configuration d’une unité de service systemd personnalisée, afin que vous puissiez automatiser le démarrage des services, rationaliser la gestion et garantir la fiabilité de votre configuration d’hébergement VPS Linux. En suivant ces étapes, vous pourrez mieux contrôler le comportement des services de votre système et améliorer sa fonctionnalité globale.

Utiliser systemd pour démarrer un service Linux au démarrage

systemd est le système init moderne utilisé par de nombreuses distributions Linux pour gérer les services et les ressources du système. L’une de ses principales fonctionnalités est la possibilité de démarrer des services automatiquement au démarrage, ce qui garantit que les applications et les services critiques sont opérationnels dès le démarrage du système. Cet article vous guidera à travers les étapes pour créer une unité de service systemd et lui permettre de démarrer au démarrage.

Qu’est-ce que systemd ?

systemd est un système d’initialisation qui remplace les anciens systèmes d’initialisation tels que SysVinit et Upstart. Il gère les processus et les services du système, ce qui permet de paralléliser le démarrage des services, de démarrer les démons à la demande et de mieux contrôler les ressources. Grâce à sa structure de fichiers unitaires, systemd offre un moyen flexible de gérer les services, les sockets, les périphériques et les autres ressources du système.

Créer un service systemd

Pour démarrer un service au démarrage à l’aide de systemd, vous devez créer un fichier d’unité de service. Ce fichier contient toutes les informations nécessaires pour que systemd puisse gérer le service. Voici comment créer et configurer un fichier d’unité de service :

Étape 1 : Vérifier le répertoire de travail

  1. Ouvrez votre fichier d’unité de service pour vérifier la directive WorkingDirectory:
    sudo nano /etc/systemd/system/myapp.service
  2. Trouvez la ligne WorkingDirectory. Elle devrait ressembler à ceci( Rechercher : Créer le fichier d’unité de service):
    WorkingDirectory=/etc/systemd/myapp
  3. Vérifiez que le répertoire spécifié existe:
    ls -l /etc/systemd/myapp

    * /chemin/vers/myapp – remplacez par le chemin d’accès que vous souhaitez utiliser. Si vous recevez une erreur indiquant que le répertoire n’existe pas, vous devrez le créer.

Étape 2 : Créer le répertoire de travail

  1. Si le répertoire n’existe pas, créez-le :
    sudo mkdir -p /etc/systemd/myapp
  2. Définissez les permissions appropriées pour que l’utilisateur spécifié dans la directive User de votre service puisse y accéder. Par exemple, si votre service s’exécute en tant que myuser :
    sudo chown myuser:myuser /etc/systemd/myapp

    Créer le fichier d’unité de service

    1. Ouvrez un terminal sur votre système Linux.
    2. Créez un nouveau fichier d’unité de service dans le répertoire /etc/systemd/system/. Le nom du fichier doit se terminer par .service. Par exemple, pour créer un service pour une application personnalisée appelée myapp, vous devez exécuter :
      sudo nano /etc/systemd/system/myapp.service
    3. Ajoutez le contenu suivant au fichier, en le modifiant si nécessaire pour votre application :
      [Unité]
      Description=Mon application personnalisée
      After=network.target
      [Service]
      ExecStart=/usr/bin/myapp
      Restart=toujours
      User=myuser
      WorkingDirectory=/etc/systemd/myapp
      [Installer]
      WantedBy=multi-user.target

      • section [Unit]: Cette section fournit des métadonnées et des dépendances pour le service.
        • Description : Une brève description du service.
        • Après : Spécifie que le service doit démarrer une fois que le réseau est disponible.
      • section [Service]: Cette section définit le comportement du service.
        • ExecStart : La commande pour démarrer le service. Remplacez /usr/bin/myapp par le chemin de votre exécutable.
        • Restart (Redémarrer) : Définit le comportement de redémarrage. always signifie que le service redémarrera s’il se plante.
        • User : Spécifie l’utilisateur sous lequel le service doit s’exécuter.
        • WorkingDirectory (Répertoire de travail) : Définit le répertoire de travail du service.
      • section [Install]: Cette section définit comment le service doit être activé.
        • WantedBy : Ceci définit la cible sous laquelle le service doit être démarré. multi-user.target est une cible commune pour les services utilisateurs.

Étape 3 : Vérifier les autorisations

  1. Vérifiez que l’utilisateur dispose des autorisations nécessaires pour accéder au répertoire de travail :
    ls -ld /etc/systemd/myapp

    Assurez-vous que les autorisations permettent à l’utilisateur de lire et d’exécuter les fichiers de ce répertoire.

Étape 4 : Test de l’exécutable dans le répertoire de travail

  1. Assurez-vous que votre application peut s’exécuter à partir de ce répertoire de travail. Vous pouvez le tester en passant à l’utilisateur et en naviguant dans le répertoire :
    sudo -u myuser bash
    cd /etc/systemd/myapp
    /usr/bin/myapp
    Vérifiez que l’application s’exécute sans erreur. En cas d’échec, dépannez l’application elle-même.

Étape 5 : Recharger systemd et démarrer le service

  1. Après s’être assuré que le répertoire de travail existe et qu’il est correctement configuré, rechargez la configuration de systemd:
    sudo systemctl daemon-reload
  2. Essayez de redémarrer le service:
    sudo systemctl start myapp.service

Étape 6 : Vérifier le statut

  1. Vérifiez l’état du service pour voir s’il a démarré avec succès:
    sudo systemctl status myapp.service

Étape 7 : Examiner les journaux à la recherche d’erreurs supplémentaires

Si le service ne démarre toujours pas, consultez les journaux pour obtenir des informations supplémentaires :

journalctl -u myapp.service

Étape 8 : (Facultatif) Arrêter et désactiver le service

Si vous avez besoin d’arrêter le service ou de l’empêcher de démarrer au démarrage, vous pouvez utiliser les commandes suivantes :

  • Pour arrêter le service :
    sudo systemctl stop myapp.service
  • Pour empêcher le service de démarrer au démarrage :
    sudo systemctl disable myapp.service

Conclusion

L’utilisation de systemd pour lancer un service Linux au démarrage est un processus simple qui améliore la fiabilité et la gestion du système. En créant un fichier d’unité de service, vous pouvez définir comment votre application doit s’exécuter et vous assurer qu’elle démarre automatiquement avec votre système. Cette méthode ne simplifie pas seulement la gestion des services, mais fournit également des fonctionnalités puissantes pour contrôler le comportement des services, ce qui fait de systemd un outil essentiel pour l’administration moderne des systèmes Linux.

Grâce à ces étapes, vous pouvez configurer et gérer efficacement vos propres services, améliorant ainsi la fonctionnalité globale de votre environnement Linux. Si vous rencontrez des problèmes, l’examen des journaux à l’aide de journalctl peut vous fournir des informations utiles sur ce qui ne va pas.

Test your skills on our all Hosting services and get 15% off!

Use code at checkout:

Skills