Dotfiles_ArchAP/docs/systemd.md

65 lines
3.1 KiB
Markdown

# systemd
## Deux périmètres distincts
| Périmètre | Commande | Propriété |
| --- | --- | --- |
| système | `systemctl ...` | `arch-system`, `/etc/systemd/system`, services root |
| utilisateur | `systemctl --user ...` | package Stow `systemd`, `~/.config/systemd/user` |
Le dépôt conserve dans `.assets/enabled-services.txt` et
`.assets/enabled-system-aux-units.txt` des snapshots de la couche système,
mais il ne l'active pas. Les unités effectivement versionnées sous
`systemd/.config/systemd/user/` appartiennent à la couche utilisateur.
## Unités utilisateur canoniques
| Domaine | Unités | Fonction |
| --- | --- | --- |
| session | `gnome-keyring-daemon.service`, `ssh-agent.service`, `wlsunset.service` | agents et services de session |
| desktop | `quickshell-labfy-sway.service`, `labfy-quickshell-updates.service/.timer` | barre, notifications et vérification des mises à jour |
| clipboard | `cliphist-text.service`, `cliphist-image.service` | collecte texte et images Wayland |
| idle | `swayidle.service` | verrouillage, alimentation des sorties et pause média |
| batterie | `battery-low-notify.service/.timer` | contrôle et notification périodiques |
| maintenance | `clean-makepkg.service` | nettoyage du cache temporaire utilisateur |
| Arch Sentinel | `arch-sentinel-sample.service/.timer` | collecte périodique légère |
| Trainlog | `trainlog-btd.service`, `trainlog-syncd.service`, `trainlog-web.service` | intégrations locales facultatives |
| Lardon | `lardon-freecad.service` | session FreeCAD liée au projet externe |
| autres | `hyprwhspr.service`, `protonmail-bridge.service` | intégrations déclenchées selon l'usage |
Les liens versionnés dans `default.target.wants/`,
`graphical-session.target.wants/`, `wayland-session@sway.desktop.target.wants/`
et `timers.target.wants/` expriment les
activations utilisateur retenues. `.assets/enabled-user-aux-units.txt` capture
en complément les timers et sockets activés observés sur la machine.
## Dépendances externes
Les unités Trainlog, Lardon et Arch Sentinel supposent que leurs projets ou
binaires existent aux chemins décrits dans
[`external-tools.md`](../.assets/external-tools.md).
Certaines unités Trainlog sont conditionnées par une configuration locale.
Ces fichiers de configuration et leurs éventuels secrets ne sont pas
versionnés.
Une unité absente du projet externe peut rester valide syntaxiquement tout en
échouant à l'exécution. La restauration doit donc vérifier à la fois le fichier
d'unité et son `ExecStart`.
## Validation
Après déploiement Stow :
```bash
systemctl --user daemon-reload
systemd-analyze --user verify \
"$HOME"/.config/systemd/user/*.service \
"$HOME"/.config/systemd/user/*.timer
systemctl --user list-unit-files --state=enabled
systemctl --user --failed
```
Ne pas lancer ou activer en bloc toutes les unités : celles liées à des
projets externes sont facultatives et peuvent exiger une configuration locale.
Les modifications des services système se font dans `arch-system`, jamais par
une commande `systemctl` non documentée dans ce dépôt.