Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Dernière révision Les deux révisions suivantes | ||
doc:systeme:systemd [08/01/2017 19:16] smolski [Introduction] |
doc:systeme:systemd [26/04/2023 16:41] lagrenouille [Systemd] |
||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
* Commentaires : // Ce tuto vise à être un aide mémoire aux commandes systemd. // | * Commentaires : // Ce tuto vise à être un aide mémoire aux commandes systemd. // | ||
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-) | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-) | ||
- | * Suivi : | + | * Suivi : {{tag>débutant doublon}} |
* Création par [[user>deuchdeb]] le 05/07/2015 | * Création par [[user>deuchdeb]] le 05/07/2015 | ||
* Testé par [[user>deuchdeb]] le 05/07/2015 | * Testé par [[user>deuchdeb]] le 05/07/2015 | ||
+ | * Actualisé/compléter par [[user>smolski]] avec l'aide du forum le 21/08/2018 | ||
* Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=128216#p128216 | Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=128216#p128216 | Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
Ligne 26: | Ligne 27: | ||
===== Installation ===== | ===== Installation ===== | ||
- | Installé par défaut . | + | Déjà installé par défaut. |
+ | |||
+ | //Et on dit que le libre c'est compliqué dit donc !// ^_^ | ||
===== Utilisation ===== | ===== Utilisation ===== | ||
+ | |||
+ | Un lien absolument nécessaire à consulter : | ||
+ | * [[https://access.redhat.com/documentation/fr-fr/red_hat_enterprise_linux/7/html/system_administrators_guide/sect-managing_services_with_systemd-unit_files#sect-Managing_Services_with_systemd-Unit_File_Structure | Créer et modifier des fichiers d'unité systemd]]. | ||
+ | |||
+ | //Merci// **Severian** ;-) | ||
+ | |||
+ | **Post** sur le forum df : | ||
+ | * [[https://debian-facile.org/viewtopic.php?pid=274804#p274804]] | ||
===== Les journaux système ===== | ===== Les journaux système ===== | ||
- | <note important>Remarque : seul l’utilisateur « root » ou le groupe « systemd-journal » peuvent consulter le journal.</note> | + | **Remarque importante !** |
+ | |||
+ | Seuls l’utilisateur « root » ou le groupe « systemd-journal » peuvent consulter le journal. | ||
==== Visualiser tout le journal ==== | ==== Visualiser tout le journal ==== | ||
Ligne 64: | Ligne 77: | ||
<code root>journalctl -r -p err</code> | <code root>journalctl -r -p err</code> | ||
+ | |||
+ | ==== Scripts auto==== | ||
+ | |||
+ | On peut activer automatiquement des scripts root au démarrage. | ||
+ | |||
+ | === Exemple === | ||
+ | |||
+ | Pour activer par exemple le script ''/opt/monscript.sh'' au démarrage de debian. | ||
+ | |||
+ | - Créer le fichier ''monscript.service'' avec le code suivant :<code root>cat >/etc/systemd/system/monscript.service <<EOF | ||
+ | [Unit] | ||
+ | Description=/opt/monscript.sh Compatibility | ||
+ | ConditionPathExists=/opt/monscript.sh | ||
+ | after=NetworkManager.service | ||
+ | |||
+ | [Service] | ||
+ | Type=forking | ||
+ | ExecStart=/opt/monscript.sh start | ||
+ | TimeoutSec=0 | ||
+ | StandardOutput=tty | ||
+ | RemainAfterExit=yes | ||
+ | SysVStartPriority=99 | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | EOF</code>À noter le démarrage du réseau pour l'utilisation de l'application [[doc:reseau:network-manager|Network Manager]] : ''after=NetworkManager.service''. \\ | ||
+ | <note important>Si vous n'utilisez pas l'application network-manager, Freemaster signale sur le forum cet argument à mettre à la place : \\ | ||
+ | ''After=network.target''</note> | ||
+ | - Créer le fichier ''/opt/monscript.sh'' ainsi :<code root>cat > /opt/monscript.sh <<EOF | ||
+ | #!/bin/sh -e | ||
+ | # /opt/monscript.sh | ||
+ | commande <argument> <options> <etc> | ||
+ | |||
+ | exit 0 | ||
+ | EOF</code> | ||
+ | - Ajouter [[doc:systeme:chmod|l'autorisation d’exécution]] au script ''/opt/monscript.sh'' :<code root>chmod +x /opt/monscript.sh</code> | ||
+ | - Et activer le service : <code root>systemctl enable monscript</code> | ||
+ | |||
+ | //Merci à //Freemaster //et //vv222// sur le forum là// : | ||
+ | * https://debian-facile.org/viewtopic.php?pid=274785#p274785 | ||
+ | //Que leurs pas soient à jamais parfumés de pétales de roses...// | ||
===== Les unités ===== | ===== Les unités ===== | ||
+ | |||
**Systemd** gère des services système mais également des périphériques, des points de montage, des timers, et d'autres composants du système. | **Systemd** gère des services système mais également des périphériques, des points de montage, des timers, et d'autres composants du système. | ||
- | Le terme générique pour tous ces objets dans **systemd** est une unité (**Unit**). La section **[Unit]** stocke l'information qui s'applique non seulement aux services mais également à tous les autres types d'unité **systemd**. | + | Le terme générique pour tous ces objets dans **systemd** est une unité (**Unit**). \\ |
+ | La section **[Unit]** stocke l'information qui s'applique non seulement aux services mais également à tous les autres types d'unité **systemd**. | ||
==== Convention de nommage ==== | ==== Convention de nommage ==== | ||
Ligne 78: | Ligne 134: | ||
montage : *.mount | montage : *.mount | ||
socket : *.socket | socket : *.socket | ||
- | |||
- | |||
===== Utilisation des unités ===== | ===== Utilisation des unités ===== | ||
Ligne 113: | Ligne 167: | ||
===== Gestion au niveau utilisateur ===== | ===== Gestion au niveau utilisateur ===== | ||
- | Pour gérer les services au niveau utilisateur, il faut ajouter l’option « %%--%%user ». Par exemple désactiver le service « dropbox » : | + | Pour gérer les services au niveau utilisateur, il faut ajouter l’option « %%--%%user ». \\ |
+ | Par exemple désactiver le service « dropbox » ainsi : | ||
<code user>systemctl --user disable dropbox</code> | <code user>systemctl --user disable dropbox</code> | ||
Ligne 122: | Ligne 176: | ||
Cela permet de reproduire le fonctionnement des //niveaux d’exécution// (//runlevels// de //SysVinit//). | Cela permet de reproduire le fonctionnement des //niveaux d’exécution// (//runlevels// de //SysVinit//). | ||
- | Pour lister toutes les cibles (actives ou non) | + | Pour lister toutes les cibles((actives ou non)) : |
<code user>systemctl list-units --type=target -all</code> | <code user>systemctl list-units --type=target -all</code> | ||
- | Voici un tableau de correspondance avec l'ancien système : FIXME : tableau à contrôler | + | Voici un tableau de correspondance avec l'ancien système : FIXME : tableau à contrôler : |
| Niveau d'exécution | Cible systemd | Notes | | | Niveau d'exécution | Cible systemd | Notes | | ||
| 0 | poweroff.target | Arrêt de l'ordinateur | | | 0 | poweroff.target | Arrêt de l'ordinateur | | ||
Ligne 136: | Ligne 188: | ||
| emergency | emergency.target | Mode de secours | | | emergency | emergency.target | Mode de secours | | ||
- | Par défaut, lorsque un gestionnaire de connexion est installé, la cible par défaut est ''graphical.target'' | + | Par défaut, lorsque un gestionnaire de connexion est installé, la cible par défaut est ''graphical.target''. Pour changer la cible par défaut au démarrage : |
- | + | * Avec ''systemctl'' :<code root>systemctl set-default multi-user.target</code> | |
- | Pour changer la cible par défaut au démarrage : | + | * Ou bien, lors de l'amorçage de l'ordinateur, en ajoutant directement à la fin de la ligne ''boot:'' :<file config>systemd.unit=multi-user.target</file> |
- | + | ||
- | Avec ''systemctl'' : | + | |
- | <code root> | + | |
- | systemctl set-default multi-user.target | + | |
- | </code> | + | |
- | + | ||
- | Ou bien en ajoutant directement à la fin de la ligne ''boot:'' lors de l'amorçage de l'ordinateur : | + | |
- | + | ||
- | <code> | + | |
- | systemd.unit=multi-user.target | + | |
- | </code> | + | |
Ligne 167: | Ligne 208: | ||
temps détaillé de démarrage du système : | temps détaillé de démarrage du système : | ||
- | <code user>Startup finished in 1.456s (kernel) + 6.752s (userspace) = 8.208s</code> | + | <code user>systemd-analyze blame</code> |
- | 1min 4.746s nmaj.service | + | <code> 1min 4.746s nmaj.service |
5.427s exim4.service | 5.427s exim4.service | ||
386ms media-Divertissement.mount | 386ms media-Divertissement.mount | ||
Ligne 229: | Ligne 270: | ||
3ms rtkit-daemon.service | 3ms rtkit-daemon.service | ||
2ms sys-fs-fuse-connections.mount | 2ms sys-fs-fuse-connections.mount | ||
- | 1ms udev-finish.service | + | 1ms udev-finish.service</code> |