Journebian · systemd

Voilà quelques années que je n'avais plus senti le besoin de prendre des notes pour administrer Linux. Mais le passage des scripts d'initialisation de type System V à systemd sur Arch Linux me font revenir à cette vieille habitude.

journalctl : le journal de systemd

La commande journalctl affiche le journal de systemd. Comme le reste de systemd, elle est puissante et pleine d'options. Quelques premières observations intéressantes :

systemctl : la commande à tout faire

La commande systemctl permet d'interroger et commander systemd.

Options intéressantes :

-a
Affiche toutes les unités, y compris celles en erreur.
list-dependencies
Affiche un arbre des dépendances des unités.
list-unit-files
Liste tous les fichiers d'unité.
start, stop, etc.
Pour démarrer et stopper un démon. Il existe aussi les variantes reload, restart, etc. Remplace service de Red Hat.
enable et disable
Pour ajouter et supprimer qqch au démarrage du système. Remplace update-rc.d de Debian.
poweroff, reboot, etc.
Remplace apparemment shutdown.
suspend, hibernate, etc.
Je suis curieux de voir si ça fonctionne avec mon PC.
default, rescue, etc.
Changement de runlevel.

Fichiers de configuration

/etc/systemd/
Ce répertoire contient des fichiers *.conf de systemd et de ses services : bootchartd, journald, logind.
/etc/systemd/system/
Ce répertoire contient la configuration custom de /usr/lib/systemd/system/, d'après la documentation Arch Linux de systemd. Avant que je mette des fichiers dans ce répertoire, il contient déjà des répertoires *.target.wants qui contiennent des liens symboliques sur des unités de systemd dans /usr/lib/systemd/system/.
/usr/lib/systemd/
Ce répertoire contient les exécutables de systemd et des sous-répertoires.
/usr/lib/systemd/system/
Ce répertoire contient les fichiers définissant les unités : *.target, *.service, *.mount, *.automount., *.socket. Les sous-répertoires *.wants contiennent des liens symboliques sur les fichiers d'unité du répertoire parent.

Systemd et le réseau

J'utilise rarement systemd, et je le connais mal. Parfois, je démarre l'ordinateur alors que le câble Ethernet est accidentellement débranché, et lorsque je le rebranche, il faut que je lance dhcpd. J'utilise alors la commande systemctl restart dhcpcd@enp3s0.service. Une commande plus générique est systemctl start multi-user.target, qui vise juste au-dessus dans l'arbre des dépendances. Ce n'est cependant pas récursif et viser encore plus haut avec systemctl start default.target ne donne rien.

D'après la documentation Arch Linux de systemd-networkd, ce service s'occupe de la configuration réseau. Il n'est cependant pas actif sur mon système selon systemctl --type=service. Il se peut que je l'ai désactivé il y a longtemps, quand je bataillais avec ma carte wifi. En cas, la commande networkctl s'attend à trouver systemd-networkd actif vu ce qu'elle affiche :

networkctl list
WARNING: systemd-networkd is not running, output will be incomplete.

IDX LINK   TYPE     OPERATIONAL SETUP    
  1 lo     loopback -           unmanaged
  2 enp3s0 ether    -           unmanaged

2 links listed.

Configuration custom avec systemd

Je ne me souviens plus ce que j'ai configuré moi-même dans systemd. Mais je suppose que je l'ai fait aussi proprement que possible. Reste à trouver les commandes qui me permettent d'analyser cela. Je commence avec systemd-delta

systemd-delta
[EXTENDED]   /usr/lib/systemd/system/dhcpcd@.service → /etc/systemd/system/dhcpcd@.service.d/override.conf
[EXTENDED]   /usr/lib/systemd/system/user@.service → /usr/lib/systemd/system/user@.service.d/10-login-barrier.conf

2 overridden configuration files found.

Pour /etc/systemd/system/dhcpcd@.service.d/override.conf je ne suis pas trop étonné. En revanche, je n'ai aucun souvenir concernant /usr/lib/systemd/system/user@.service.d/10-login-barrier.conf. Le fichier /etc/systemd/system/dhcpcd@.service.d/override.conf sert à ajouter l'option -A au lancement de dhcpcd.

[Service]
ExecStart=
ExecStart=/usr/bin/dhcpcd -A -q -w %I

Rien de bien utile, c'était pour essayer d'accélérer le boot.


© 2013-2023 Marc Mongenet Creative Commons License
Ce document est disponible selon les termes de la Creative Commons Attribution 2.5 License.
Dernière mise à jour et validation le 14 avril 2023.