Fichier de service système

Fichier De Service Systeme



Sous Linux, la sortie d'état de systemctl indique que le service est chargé via un fichier appelé fichier de service. Ces fichiers sont accessibles dans le /lib/systemd/système ou /etc/systemd/système répertoires.

Les fichiers de service ont .service extensions et contiennent les instructions requises par système pour gérer un service.







Le système init system gère l'initialisation du système à l'aide du Unité . Une unité est un objet qui exécute une tâche ou une action, telle que la gestion d'un service, ce qui implique de le contrôler et de le surveiller. Ces unités sont essentiellement des fichiers appelés fichiers de service qui incluent les dépendances et les commandes des unités. Ces fichiers sont cruciaux pour contrôler efficacement les processus en arrière-plan et gérer les ressources.



Dans le guide, j'explorerai le fichier du service systemd, sa structure et les principales directives qui contrôlent le service.



Lorsque vous travaillez avec systemd, les termes fichier de service système et fichier d'unité systemd sont souvent utilisés de manière interchangeable car techniquement, ils font référence à la même chose.





Qu'est-ce que le fichier de service Systemd

Sous Linux, systemd gère les services à l'aide des fichiers de service qui contiennent les instructions de configuration afin que systemd puisse comprendre et exécuter.

Pour lister les unités, utilisez systemctl avec le –liste-unités commande.



systèmectl --liste-unités

Pour lire le fichier de service de n'importe quel service, utilisez le chat commande avec le chemin du fichier.

chat [ / chemin du fichier de service ]

Par exemple, pour voir le fichier de service de ssh.service utilisez la commande donnée.

chat / lib / système / système / ssh.service

Anatomie du fichier de service Systemd

Généralement, les fichiers d'unités de service systemd contiennent trois sections.

  • Unité
  • Service
  • Installer

Un fichier d'unité spécifique à un service aura une section spécifique appelée Service section.

Notez que le service n’est qu’un type d’unité. Une unité peut avoir différents types tels que socket, périphérique, montage, montage automatique, échange, cible, minuterie, tranche et portée. Ces sections sont placées entre les sections Unité et Installation. L'extension du fichier sera également remplacée par le type d'unité respectif, par exemple, un type d'unité socket aura un .prise extension de fichier.

Note: Dans ce guide, je me concentrerai sur le type d'unité de service en raison de sa large utilisation par les administrateurs et les développeurs.

Ces sections sont placées entre crochets ([]). Chaque section contient un jeu d'instructions pertinent. Une structure générale d’un fichier de service est donnée ci-dessous.

[ Unité ]

Directive1 =Instruction 1

Directive2 =Instruction 2

[ Service ]

Directive1 =Instruction 1

Directive2 =Instruction 2

[ Installer ]

Directive1 =Instruction 1

Directive2 =Instruction 2

L'ordre des sections peut être modifié ; cependant, l'ordre mentionné ci-dessus est généralement suivi.

Section [Unité]

La section unité contient la description de l’unité et des dépendances de l’unité. Cette section, par convention, est placée en haut du fichier de service. Les directives couramment utilisées sont répertoriées ci-dessous :

Directif Description
Description Cette directive est utilisée pour mentionner le nom du service. La longueur de la description ne doit pas dépasser 80 caractères.
Documentation Cette directive contient la page de manuel ou l'URL du service.
A besoin Cette directive est utilisée pour mentionner la dépendance au service actuel. Si l'activation de ce service de dépendance n'est pas effectuée, le service en cours ne sera pas initié.
Veut Cette directive est utilisée pour mentionner la dépendance au service actuel. Cependant, il n'est pas nécessaire d'activer ce service de dépendance pour exécuter le service actuel.
Avant Une fois l'unité actuelle activée, le service mentionné dans cette directive sera démarré.
Après Avant que l'unité actuelle ne soit activée, le service mentionné dans cette directive sera démarré.
Lier à Cette directive lie le service actuel au service mentionné. Si le service lié redémarre, les services actuels redémarreront également.

Outre ces directives, il existe deux autres directives ; Condition et Affirmer. De nombreux services nécessitent des conditions système spécifiques pour fonctionner correctement, et ces directives sont utilisées pour mentionner les conditions.

Section [Installer]

Cette section n'est pas obligatoire et n'est nécessaire que lorsqu'un service nécessite une activation ou une désactivation au démarrage. De plus, il convient également de mentionner le service d'alias. Les directives couramment utilisées pour la section Installer sont répertoriées ci-dessous :

Directif Description
RecherchéPar Cette directive définit le niveau d'exécution * cible du service. Si un objectif est fixé à multi-utilisateur.cible alors le service sera activé à ce niveau d'exécution.
Requis par Cette directive ressemble à WantedBy, cependant, même sans la dépendance mentionnée dans la directive, le service sera activé.
Alias Cette directive est utilisée pour activer le service avec un autre nom. Un lien symbolique est créé avec ce nom lorsque le service est activé.

Surtout, le multi-utilisateur.cible est utilisé en tant que RecherchéPar paramètre. Mais qu’est-ce que multi-user.target ?

Le multi-user.target représente l’état du système prêt à accepter des sessions multi-utilisateurs non graphiques. C'est l'état avant de lancer l'interface graphique.

Il existe différents niveaux d'exécution du système, découvrons la fonction de ces niveaux d'exécution.

Dans systemd, les services sont regroupés en fonction de niveaux d'exécution, appelés cibles . Chaque niveau d'exécution possède un fichier avec .cible prolongation dans le /etc/systemd/système annuaire. Un service s'exécutera en fonction de l'état du niveau d'exécution.

Niveau d'exécution Cibles État Des dossiers
0 éteindre Arrêter et éteindre poweroff.cible
1 sauvetage Démarre la coquille de sauvetage sauvetage.cible
2,3,4 multi-utilisateur Démarre le shell multi-utilisateur non-GUI multi-utilisateur.cible
5 graphique Établit un shell GUI multi-utilisateurs graphique.cible
6 redémarrer Arrêter et redémarrer redémarrer.cible

Rubrique [Services]

Cette section comprend les paramètres de configuration du service. La configuration principale de cette section consiste à définir le type et les commandes à exécuter au démarrage du service. Taper et ExécuterDébut sont les principales directives utilisées pour mettre en place un service.

Différents types de services sont répertoriés dans le tableau suivant.

type de service Description
simple Il s'agit du type par défaut lorsque le type ou le nom du bus n'est pas mentionné et que seul ExecStart est mentionné. Le systemd exécute d'abord le processus principal, puis les unités de suivi.
bifurquer Ce type est utilisé pour maintenir le service en marche même si le service parent est fermé. Il lance un processus enfant après la fermeture du processus parent.
un tir Le systemd exécute d'abord le processus principal et lorsque le processus principal se termine, les unités de suivi démarrent.
bus Le service avec dbus est utilisé pour communiquer avec un autre processus sur le bus. Si le nom du bus est mentionné, le processus sera activé une fois le nom du bus acquis.
notifier Le service vous avertira lors du démarrage du processus. Le systemd procédera aux unités de suivi après l'émission de la notification.
inactif Il maintient le service jusqu'à ce que toutes les tâches actives soient distribuées ; principalement utile pour améliorer la sortie de la console.

Les directives couramment utilisées dans la section Service sont mentionnées ci-dessous :

Directif Description
ExécuterDébut Il conserve le chemin complet de la commande à exécuter pour démarrer le processus.
ExecStartPre Il conserve les commandes qui doivent être exécutées avant le début du processus principal.
ExecStartPost Il conserve les commandes qui doivent être exécutées après le début du processus principal.
ExecReload Il conserve la commande pour recharger la configuration du service.
Redémarrage Pour redémarrer automatiquement le service dans des circonstances telles qu'en cas d'échec, de réussite, d'anomalie, d'abandon et de surveillance.
RedémarrerSec Pour conserver le nombre de secondes après lequel le service redémarrera automatiquement.

Le ExécuterDébut est l'une des directives cruciales utilisées dans la section Service. Il contient le chemin complet de l'exécutable que le service exécutera lors de son appel.

Conclusion

Un fichier de service systemd est un fichier de configuration structuré avec des directives et des commandes afin qu'elles puissent être gérées par systemd. Ces fichiers contiennent des instructions indiquant comment un service est géré par systemd. Dans ce guide, j'ai expliqué comment accéder à un fichier de service systemd, à ses sections et aux directives qui gèrent les services. Pour en savoir plus sur les instructions du fichier de service, veuillez lire le guide de documentation officiel trouvé ici .