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édentes Révision précédente
Prochaine révision
Révision précédente
systemd [Le 04/03/2017, 13:21]
83.112.181.239 [Les services]
systemd [Le 29/02/2024, 07:08] (Version actuelle)
178.38.234.34 Lien vers Archlinux corrigé
Ligne 1: Ligne 1:
-{{tag>​système administration services}} +{{tag>​système administration services ​log Focal}}
-----+
  
 ====== systemd ====== ====== systemd ======
Ligne 6: Ligne 5:
 C'est une pièce maîtresse de l'​architecture [[:​GNU]]/​[[:​Linux]]. En effet, c'est le premier programme lancé par le noyau (il a donc le PID N°1) et il se charge de lancer tous les programmes suivants en ordre jusqu'​à obtenir un système opérationnel pour l'​utilisateur,​ selon le mode déterminé (single user, multi-user, graphique). C'est également à lui qu'​incombe la tache de redémarrer ou arrêter votre ordinateur proprement. C'est une pièce maîtresse de l'​architecture [[:​GNU]]/​[[:​Linux]]. En effet, c'est le premier programme lancé par le noyau (il a donc le PID N°1) et il se charge de lancer tous les programmes suivants en ordre jusqu'​à obtenir un système opérationnel pour l'​utilisateur,​ selon le mode déterminé (single user, multi-user, graphique). C'est également à lui qu'​incombe la tache de redémarrer ou arrêter votre ordinateur proprement.
  
-<note warning>​À ​la la lecture de l’introduction,​ il apparaît très clairement que toute modification malencontreuse de l'​architecture des services lancés par systemd peut avoir des conséquences dramatiques sur le fonctionnement de votre ordinateur. \\ Il faut être très prudent lorsque l'on touche à la configuration de systemd. \\ __Une mauvaise manipulation peut rendre votre système instable__, jusqu'​à le rendre totalement inutilisable.</​note>​+<note warning>​À la lecture de l’introduction,​ il apparaît très clairement que toute modification malencontreuse de l'​architecture des services lancés par systemd peut avoir des conséquences dramatiques sur le fonctionnement de votre ordinateur. \\ Il faut être très prudent lorsque l'on touche à la configuration de systemd. \\ __Une mauvaise manipulation peut rendre votre système instable__, jusqu'​à le rendre totalement inutilisable.</​note>​
 <note warning>​D'​anciennes versions de Ubuntu proposent dans les dépôts le paquet systemd et il est donc possible de l'​installer en remplacement de Upstart. Néanmoins, cette manipulation est complexe et extrêmement risquée. Pour cette raison, cette procédure ne sera pas décrite ici.</​note>​ <note warning>​D'​anciennes versions de Ubuntu proposent dans les dépôts le paquet systemd et il est donc possible de l'​installer en remplacement de Upstart. Néanmoins, cette manipulation est complexe et extrêmement risquée. Pour cette raison, cette procédure ne sera pas décrite ici.</​note>​
  
Ligne 20: Ligne 19:
 Il est généralement utilisé dans un [[:​terminal]]:​ Il est généralement utilisé dans un [[:​terminal]]:​
 <​code>​systemctl ACTION <​Nom_du_service>​.service</​code>​ <​code>​systemctl ACTION <​Nom_du_service>​.service</​code>​
-Où  +
   * ACTION sera la commande que l'on souhaite appliquer à la dite unité:   * ACTION sera la commande que l'on souhaite appliquer à la dite unité:
       * // start // : démarrer le service       * // start // : démarrer le service
Ligne 27: Ligne 26:
       * // reload // : recharger le service       * // reload // : recharger le service
       * // status // : connaitre l'​état du service       * // status // : connaitre l'​état du service
 +      * // show // : montre le contenu du fichier de configuration du service
   * <​Nom_du_service>​ est le nom du service visé.   * <​Nom_du_service>​ est le nom du service visé.
    
-Quelle que soit l'​action menée sur un service, au prochain démarrage de la machine celui-ci devrait retrouver le status qui lui a été [[#Modifier l'​exécution d'un service|défini par défaut]]. ​+Quelle que soit l'​action menée sur un service, au prochain démarrage de la machine celui-ci devrait retrouver le status qui lui a été [[#Modifier l'​exécution d'un service|défini par défaut]].
 <​note>​Il n'est pas nécessaire d'​utiliser sudo devant ces commandes. Systemctl vous demandera votre mot de passe root en cas de besoin (presque à chaque fois, donc)</​note>​ <​note>​Il n'est pas nécessaire d'​utiliser sudo devant ces commandes. Systemctl vous demandera votre mot de passe root en cas de besoin (presque à chaque fois, donc)</​note>​
  
Ligne 45: Ligne 45:
 ====Lister les services démarrés==== ====Lister les services démarrés====
  
-Pour obtenir la liste triée ​des services accompagnés de leur état, saisissez dans un [[:​terminal]] : +Pour obtenir la liste triée ​de tous les services accompagnés de leur état, saisissez dans un [[:​terminal]] : 
-<​code>​systemctl list-unit-files ​| grep service ​| sort </​code>​+<​code>​systemctl list-unit-files ​--type=service</​code>​ 
 + 
 +Pour la liste des services actifs avec leur description : 
 +<​code>​systemctl list-units --type=service</​code>​ 
 + 
 +Pour la liste des services actifs, encours d'​exécution,​ avec leur description : 
 +<​code>​systemctl list-units --type=service --state=running</​code>​ 
 + 
 +Il y a d'​autres possibilités pour voir les services activés, désactivés,​ etc. qui sont décrites dans la page de manuel de systemctl.
  
 Vous pouvez également obtenir la liste des services lancés au démarrage, triés selon leur temps d’exécution : Vous pouvez également obtenir la liste des services lancés au démarrage, triés selon leur temps d’exécution :
Ligne 54: Ligne 62:
 ====Modifier l'​exécution d'un service==== ====Modifier l'​exécution d'un service====
  
-Pour desactiver ​un service, il faut taper : +Pour désactiver ​un service, il faut taper : 
-<​code>​systemctl disable <​Nom_du_service>​.service</​code>​ +<​code>​sudo systemctl disable <​Nom_du_service>​.service</​code>​ 
-Ainsi, au prochain ​redemarrage ​du système, le service correspondant ne sera plus lancé.\\+Ainsi, au prochain ​redémarrage ​du système, le service correspondant ne sera plus lancé.\\
  
-Pour activer un service (c'est à dire le lancer à chaque ​demarrage ​de l'​ordinateur) ou relire ​sont fichier de configuration,​ il faut taper: +Pour activer un service (c'est à dire le lancer à chaque ​démarrage ​de l'​ordinateur) ou relire ​son fichier de configuration,​ il faut taper: 
-<​code>​systemctl enable <​Nom_du_service>​.service</​code>​+<​code>​sudo systemctl enable <​Nom_du_service>​.service</​code>​
  
 Néanmoins si vous souhaitez modifier l'​état d'un service selon certaines conditions, vous devrez [[:​tutoriel:​comment_modifier_un_fichier|modifier ou créer le fichier]] **/​etc/​systemd/​system/<​nom_du_service>​.service**. Les fichiers de configuration par défaut se trouvent dans **/​lib/​systemd/​system/​**\\ Néanmoins si vous souhaitez modifier l'​état d'un service selon certaines conditions, vous devrez [[:​tutoriel:​comment_modifier_un_fichier|modifier ou créer le fichier]] **/​etc/​systemd/​system/<​nom_du_service>​.service**. Les fichiers de configuration par défaut se trouvent dans **/​lib/​systemd/​system/​**\\
Ligne 65: Ligne 73:
 ===Exemples=== ===Exemples===
 Si vous souhaitez désactiver la [[:​synchronisation]] des fichiers [[:​syncthing]],​ dans un [[:​terminal]] saisissez: Si vous souhaitez désactiver la [[:​synchronisation]] des fichiers [[:​syncthing]],​ dans un [[:​terminal]] saisissez:
-<​code>​systemctl disable syncthing.service</​code>​+<​code>​sudo systemctl disable syncthing.service</​code>​
 Pour réactiver le service, il faudra faire la manipulation inverse: Pour réactiver le service, il faudra faire la manipulation inverse:
-<​code>​systemctl enable syncthing.service</​code>​+<​code>​sudo systemctl enable syncthing.service</​code>​
  
 ====Logiciel graphique==== ====Logiciel graphique====
Ligne 92: Ligne 100:
  
 ====Gérer l'​état de votre ordinateur ==== ====Gérer l'​état de votre ordinateur ====
-Pour changer de target, on utilise la commande **isolate** de **systemctl**. Par exemple, pour passer en mode multi-utilisateur non graphique, il faut taper dans un [[:​terminal]]:​+Pour changer de cible, on utilise la commande **isolate** de **systemctl**. Par exemple, pour passer en mode multi-utilisateur non graphique, il faut taper dans un [[:​terminal]]:​
 <​code>​systemctl isolate multi-user.target</​code>​ <​code>​systemctl isolate multi-user.target</​code>​
 ou son équivalent selon le tableau ci-dessus : ou son équivalent selon le tableau ci-dessus :
Ligne 104: Ligne 112:
 <​code>​sudo systemctl reboot</​code>​ <​code>​sudo systemctl reboot</​code>​
  
-Vous pouvez utilisez d'autre commande ​pour gérer l'​état de votre ordinateur (dans l'​ordre,​ éteindre / mettre en veille / hiberner) :+Vous pouvez utilisez d'autres commandes ​pour gérer l'​état de votre ordinateur (dans l'​ordre,​ éteindre / mettre en veille / hiberner) :
 <​code>​ <​code>​
 systemctl poweroff systemctl poweroff
Ligne 111: Ligne 119:
 </​code>​ </​code>​
  
-Enfin, vous pouvez définir ​le target ​par défaut au démarrage en tapant :+Enfin, vous pouvez définir ​la cible par défaut au démarrage en tapant :
 <​code>​systemctl set-default -f multi-user.target</​code>​ <​code>​systemctl set-default -f multi-user.target</​code>​
 Votre ordinateur démarrera désormais en mode multi-utilisateur sans mode graphique.\\ Votre ordinateur démarrera désormais en mode multi-utilisateur sans mode graphique.\\
  
-====Infos sur les targets ​==== +====Infos sur les cibles ​==== 
-Pour connaitre la liste des targets configurés ​sur votre ordinateur, tapez dans un [[:​terminal]] :+Pour connaitre la liste des cibles configurées ​sur votre ordinateur, tapez dans un [[:​terminal]] :
 <​code>​systemctl list-unit-files | grep target </​code>​ <​code>​systemctl list-unit-files | grep target </​code>​
  
-Pour savoir quelles unités sont regroupés ​au sein d'​une ​target, tapez :+Pour savoir quelles unités sont regroupées ​au sein d'​une ​cible, tapez :
 <​code>​systemctl show -p Wants -p Requires <​target></​code>​ <​code>​systemctl show -p Wants -p Requires <​target></​code>​
  
Ligne 126: Ligne 134:
 ===== Les journaux ===== ===== Les journaux =====
 systemd possède son propre mécanisme de journalisation,​ appelé "The Journal"​. systemd possède son propre mécanisme de journalisation,​ appelé "The Journal"​.
 +
 +Ils sont enregistrés dans le répertoire **/​var/​log/​journal/​**.
 +==== Consultation ====
  
 Pour accéder au log, tapez dans un [[:​terminal]] : Pour accéder au log, tapez dans un [[:​terminal]] :
 <​code>​journalctl</​code>​ <​code>​journalctl</​code>​
  
-Pour une gestion ​plus fine, vous pouvez consulter les messages d'un seul service par son //nom//, son //PID// ou même son //​exécutable//​ :+Pour une vision ​plus fine, vous pouvez consulter les messages d'un seul service par son //nom//, son //PID// ou même son //​exécutable//​ :
 <​code>​journalctl -u wicd <​code>​journalctl -u wicd
 journalctl _PID=1 journalctl _PID=1
Ligne 136: Ligne 147:
 </​code>​ </​code>​
  
-<note tip>​Lorsque vous consultez le ''​status''​ d'un service avec la commande ''​systemctl status <​nom_du_service>'',​ systemd vous affiches ​quelques lignes des logs les plus recents</​note>​+<note tip>​Lorsque vous consultez le ''​status''​ d'un service avec la commande ''​systemctl status <​nom_du_service>'',​ systemd vous affiche ​quelques lignes des logs les plus recents</​note>​
  
 journalctl permet aussi de filtrer par le niveau de log (tel que défini par syslog). Pour n'​afficher que les erreurs : journalctl permet aussi de filtrer par le niveau de log (tel que défini par syslog). Pour n'​afficher que les erreurs :
Ligne 144: Ligne 155:
 Il existe un logiciel graphique nommé **Gnome-logs** pour lire les fichiers de log generés par systemd. Il existe un logiciel graphique nommé **Gnome-logs** pour lire les fichiers de log generés par systemd.
  ​[[:​tutoriel:​comment_installer_un_paquet|Installez les paquets]] **[[apt>​gnome-logs|gnome-logs]]**  ​[[:​tutoriel:​comment_installer_un_paquet|Installez les paquets]] **[[apt>​gnome-logs|gnome-logs]]**
 +==== Gestion ====
 +
 +Le **volume de ces fichiers de suivi peut devenir important** (jusqu'​à 4 Go) sur votre disque sytème et s'​enregistrer sur plusieurs mois. Vous pouvez ramener immédiatement ces fichiers à une taille moindre en éliminant les plus vieux événements par la commande :
 +<​code>​sudo journalctl --vacuum-size=200M</​code>​
 +Vous choisissez le paramètre « size » ; dans cet exemple, la taille totale des fichiers est ramenée à 200 Mo.
 +
 +Vous pouvez modifier les différents paramètres de gestion de ce journal par le fichier /​etc/​systemd/​journald.conf (informations disponibles sur cette page [[https://​www.freedesktop.org/​software/​systemd/​man/​journald.conf.html#​SystemMaxUse=|journal systemd]] avec les paramètres par défaut). Pour passer outre les paramètres par défaut, vous devez modifier ce fichier avec les [[sudo|Droits de super utilisateur]].
 +
 +==== Monter un disque avec systemd.automount ====
 +Voir la page : [[Mounter un disque avec systemd.automount]]
 +
 +===== Problèmes courants =====
 +
 +On peut procéder un examen général du système et lister les "​unités"​ posant problème à l'aide de la commande suivante :
 +    systemctl list-units --failed
 +
 ===== Ressources ====== ===== Ressources ======
 +  * [[creer_un_service_avec_systemd|Créer un nouveau service avec systemd]]
   * [[wpfr>​systemd|systemd]] sur Wikipedia en français   * [[wpfr>​systemd|systemd]] sur Wikipedia en français
   * [[http://​casteyde.christian.free.fr/​system/​linux/​guide/​index.html|YAGIL]] Yet Another « Guide d'​installation de Linux » de Christian Casteyde. Pour tout savoir sur le fonctionnement de [[:GNU]] / [[:Linux]].   * [[http://​casteyde.christian.free.fr/​system/​linux/​guide/​index.html|YAGIL]] Yet Another « Guide d'​installation de Linux » de Christian Casteyde. Pour tout savoir sur le fonctionnement de [[:GNU]] / [[:Linux]].
-  * [[https://​wiki.archlinux.fr/Systemd|Archlinux et systemd]] Systemd sur le wiki de Archlinux +  * [[https://​wiki.archlinux.org/title/​Systemd_(Fran%C3%A7ais)|Archlinux et systemd]] Systemd sur le wiki de Archlinux 
-  * [[http://​doc.fedora-fr.org/​wiki/​Systemd|Fedora et systemd]] notamment pour la partie [[#​Personnaliser un fichier de configuration systemd]]+  * [[https://​doc.fedora-fr.org/​wiki/​Systemd|Fedora et systemd]] notamment pour la partie [[#​Personnaliser un fichier de configuration systemd]]
   * [[https://​docs.syncthing.net/​users/​autostart.html#​using-systemd|Documentation de Syncthing]] Créer un service systemd pour lancer Syncthing au démarrage (en anglais)   * [[https://​docs.syncthing.net/​users/​autostart.html#​using-systemd|Documentation de Syncthing]] Créer un service systemd pour lancer Syncthing au démarrage (en anglais)
-  * [[http://​dev.deluge-torrent.org/​wiki/​UserGuide/​Service/​systemd|Documentation de Deluge]] Créer un service systemd pour lancer Deluge au démarrage (en anglais)+  * [[https://​dev.deluge-torrent.org/​wiki/​UserGuide/​Service/​systemd|Documentation de Deluge]] Créer un service systemd pour lancer Deluge au démarrage (en anglais)
  
  
 ---- ----
 //​Contributeurs:​ [[:​utilisateurs:​zarmu]]//​ //​Contributeurs:​ [[:​utilisateurs:​zarmu]]//​
  • systemd.1488630087.txt.gz
  • Dernière modification: Le 04/03/2017, 13:21
  • par 83.112.181.239