| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| sysadmin:linux:systemd:configuration_service [2022/01/02 19:07] – [Vérifier les propriétés d'une unité] yoann | sysadmin:linux:systemd:configuration_service [2026/03/06 14:01] (Version actuelle) – Ajout référence yoann |
|---|
| {{tag>sysadmin linux systemd unit services config configuration todo}} | {{tag>sysadmin linux systemd unit services config configuration}} |
| |
| ====== systemd : configuration des services ====== | ====== systemd : configuration des services ====== |
| **systemd** est à la fois un système d'initialisation et un gestionnaire pour les services système. Il est utilisé par de nombreuses distributions GNU/Linux et a finit par s'imposer comme un standard. | **systemd** est à la fois un système d'initialisation et un gestionnaire pour les services système. Il est utilisé par de nombreuses distributions GNU/Linux et a finit par s'imposer comme un standard. |
| |
| **systemctl** est le CLI conçu pour contrôler l'initialisation du système. Il permet de gérer les services, vérifier leur état, modifier l'état du système ou encore modifier les fichiers de configuration. | **systemctl** est le CLI permettant d'interagir avec systemd. Il permet de gérer les services, vérifier leur état, modifier l'état du système ou encore modifier les fichiers de configuration. |
| |
| Notons que même si systemd est devenu le système d'initialisation par défaut pour de nombreuses distributions, il n'est pas forcément implémenté totalement sur celles-ci. Un message du type ''%%bash: systemctl is not installed%%'' peut être retrourné lors de l'usage d' une fonctionnalité non disponible sur votre distribution | Notons que même si systemd est devenu le système d'initialisation par défaut pour de nombreuses distributions, il n'est pas forcément implémenté totalement sur celles-ci. Un message du type ''%%bash: systemctl is not installed%%'' peut être retrourné lors de l'usage d' une fonctionnalité non disponible sur votre distribution |
| |
| ''static'' dans ce contexte indique que le fichier unité ne contient pas de section ''install'' ( l'unité ne peut donc pas être activée). Généralement cela signifie que l'unité a une action on/off ou qu'elle est utilisée comme dépendance pour une autre unité et ne devrait pas être exécutée directement. | ''static'' dans ce contexte indique que le fichier unité ne contient pas de section ''install'' ( l'unité ne peut donc pas être activée). Généralement cela signifie que l'unité a une action on/off ou qu'elle est utilisée comme dépendance pour une autre unité et ne devrait pas être exécutée directement. |
| | |
| | <code bash> |
| | # Liste les fichiers unités des services désactivés ou masqués |
| | systemctl list-unit-files --type=service --state=disabled,masked |
| | </code> |
| | |
| |
| ===== Gestion des unités ===== | ===== Gestion des unités ===== |
| systemctl show hostapd.service | systemctl show hostapd.service |
| |
| # Affiche la valeur de la propriété ExecStart pour l'unité hostap.service | # Affiche la valeur de la propriété ExecStart pour l'unité hostapd.service |
| systemctl show hostapd.service -p ExecStart | systemctl show hostapd.service -p ExecStart |
| |
| </code> | </code> |
| |
| | La commande show permet notamment de retourner les prérequis nécessaires à la bonne exécution d'une unité: |
| | |
| | <code bash> |
| | # Affiche les unités nécessaires à l’exécution de graphical.target |
| | systemctl show -p Wants -p Requires graphical.target |
| | </code> |
| ==== Masquer/démasquer une unité ==== | ==== Masquer/démasquer une unité ==== |
| |
| |
| Ces commandes préviennent les utilisateurs avec des sessions en cours que le système est arrêté, ce que ne feront pas les commandes d'isolation. | Ces commandes préviennent les utilisateurs avec des sessions en cours que le système est arrêté, ce que ne feront pas les commandes d'isolation. |
| | |
| | ===== Analyser la phase de démarrage ===== |
| | |
| | systemd intègre un outils d'analyse du temps de démarrage: |
| | <code bash> |
| | systemd-analyse time |
| | </code> |
| | |
| | Pour détailler le temps de démarrage par unité: |
| | <code bash> |
| | systemd-analyse blame |
| | </code> |
| |
| ===== Pour conclure ===== | ===== Pour conclure ===== |
| |
| D' autres composants existent dans l'écosystème de systemd. Des fonctionnalités telles que la gestion de la journalisation, des sessions utilisateurs sont controlées par des utilitaire différents respectivement ''journald/journalctl'' et ''logind/loginctl''. | D' autres composants existent dans l'écosystème de systemd. Des fonctionnalités telles que la gestion de la journalisation, des sessions utilisateurs sont controlées par des utilitaire différents respectivement ''journald/journalctl'' et ''logind/loginctl''. |
| | |
| |
| ===== Références ===== | ===== Références ===== |
| * https://blog.thewatertower.org/2019/04/24/modifying-systemd-unit-files/ | * https://blog.thewatertower.org/2019/04/24/modifying-systemd-unit-files/ |
| * https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units | * https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units |
| | * [[https://www.baeldung.com/linux/systemctl-list-enabled-services|systemd : lister les services actifs (baeldung.com)]] |
| | * [[https://www.golinuxcloud.com/run-systemd-service-specific-user-group-linux/|Comment définir l'utilisateur ou le groupe d'exécution d'un service systemd (golinuxcloud.com) (en)]] |
| | * [[https://www.baeldung.com/linux/systemd-unit-file-editor[Modifier l'éditeur par défaut pour systemd (baeldung.com) (en)]] |