Outils pour utilisateurs

Outils du site


sysadmin:linux:systemd:configuration_service

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
sysadmin:linux:systemd:configuration_service [2022/01/02 18:19] yoannsysadmin:linux:systemd:configuration_service [2023/12/11 22:14] (Version actuelle) – [Lister les fichiers unité] yoann
Ligne 1: Ligne 1:
-{{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 ======
Ligne 5: Ligne 5:
 **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
Ligne 156: Ligne 156:
  
 ''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 =====
Ligne 195: Ligne 201:
 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
 +
 +# syntaxe avec option longue
 +systemctl show hostapd.service --property PIDFile 
 </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é ====
  
Ligne 231: Ligne 246:
 ===== Modifier un fichier unité ===== ===== Modifier un fichier unité =====
  
-systemd fournit un système pour modifier/éditer les fichiers unité afin ajuster les comportement des unités aux besoins: c'est la commande **edit**:+systemd intègre une commande pour assister la modification des fichiers unité afin ajuster les comportement des unités aux besoins: c'est la commande **edit**
 + 
 +==== Modifications temporaires ==== 
 + 
 +Il est possible de modifier puis de charger un fichier unité non persistant: 
 +<code bash> 
 +systemctl edit --runtime some.service 
 +</code> 
 + 
 +Cette proposition permet d'expérimenter un changement tout en assurant de retrouver un état fonctionnel après redémarrage dans le cas d'un imprévu. 
 + 
 +==== snippet ou fragment/extrait ==== 
 + 
 +Utilisée sans option la commande edit produit un fichier de configuration complémentaire pour l'unité:
  
 <code bash> <code bash>
Ligne 237: Ligne 265:
 </code> </code>
  
-Sans option, la commande produit un fichier texte vide utilisé pour redéfinir les valeurs par défaut ou ajouter de nouvelles directives pour la définition de l'unité. Un dossier sera créé dans le répertoire ''/etc/systemd/system''. Il sera nommé en fonction de l'unité puis terminé par le suffixe ''.d''. Dans celui-ci un fragment (extrait ou snippet) de fichier de configuration sera enregistré avec le nom ''override.conf''. Quand l'unité sera chargée, les valeurs présentes dans ce fichier seront prioritaires. +C'est un fichier texte vide utilisé pour redéfinir les valeurs par défaut ou ajouter de nouvelles directives pour la définition de l'unité. Un dossier sera créé dans le répertoire ''/etc/systemd/system''. Il sera nommé en fonction de l'unité puis terminé par le suffixe ''.d''. Dans celui-ci un fragment (extrait ou snippet) de fichier de configuration sera enregistré avec le nom ''override.conf''. Quand l'unité sera chargée, les valeurs présentes dans ce fichier seront prioritaires. 
  
 Dans le cas ou l'on souhaite charger l'ensemble des valeurs du fichier unité par défaut, il faut utiliser l'option ''%%--full%%'': Dans le cas ou l'on souhaite charger l'ensemble des valeurs du fichier unité par défaut, il faut utiliser l'option ''%%--full%%'':
Ligne 247: Ligne 275:
 La commande charge la totalité des valeurs du fichier unité courant dans l'éditeur de texte. Les modifications sont écrites dans le répertoire ''/etc/systemd/system'' qui est prioritaire sur les définitions des unités du système (''/lib/systemd/system'') La commande charge la totalité des valeurs du fichier unité courant dans l'éditeur de texte. Les modifications sont écrites dans le répertoire ''/etc/systemd/system'' qui est prioritaire sur les définitions des unités du système (''/lib/systemd/system'')
  
-==== Supprimer les redéfinitions ====+==== Identifier les modifications ==== 
 + 
 +Pour identifier les modifications apportées sur l'ensemble de la configuration des unités de systemd: 
 + 
 +<code bash> 
 +systemd-delta 
 +</code> 
 + 
 +==== Supprimer les altérations ====
  
 Pour supprimer les ajustements, on peut supprimer le dossier contenant les fragments de configuration liés à l'unité ou le fichier unité présent dans le dossier ''/etc/systemd/system'' Pour supprimer les ajustements, on peut supprimer le dossier contenant les fragments de configuration liés à l'unité ou le fichier unité présent dans le dossier ''/etc/systemd/system''
Ligne 263: Ligne 299:
 <code bash> <code bash>
 systemctl daemon-reload systemctl daemon-reload
 +</code>
 +
 +
 +==== Restaurer la configuration système ====
 +
 +Pour restaurer la configuration proposée dans les paquets de la distribution:
 +
 +<code bash>
 +systemctl revert some.service
 </code> </code>
  
Ligne 349: Ligne 394:
  
 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 =====
Ligne 355: Ligne 412:
  
 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 =====
Ligne 360: Ligne 418:
   * 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)]]
sysadmin/linux/systemd/configuration_service.1641147558.txt.gz · Dernière modification : 2022/01/02 18:19 de yoann