port to hugo
This commit is contained in:
parent
12fc6478e1
commit
0dca9733e7
22 changed files with 46 additions and 67 deletions
85
content/talks/systemd.generator/_index.md
Normal file
85
content/talks/systemd.generator/_index.md
Normal file
|
@ -0,0 +1,85 @@
|
|||
---
|
||||
title: systemd.generator(7)
|
||||
data: 2019-03-14
|
||||
---
|
||||
# systemd.generator(7)
|
||||
|
||||
[Recording](https://www.youtube.com/watch?v=X88zHJjodFw)
|
||||
|
||||
# Dynamische Systeme sind schwierig
|
||||
|
||||
- ➤ Devices, Mountpoints, Services, Timer möglichst als Unit
|
||||
- Transitionstechnologie für `/etc/fstab` und SysV init-Skripte
|
||||
- Hooks für den Bootprozess (System-Update, Resume, Debug ...)
|
||||
- Umgebungsvariablen setzen
|
||||
- ➤ Generatoren generieren beim Boot dynamisch Units
|
||||
|
||||
# Calling convention
|
||||
|
||||
`# /path/to/generator normal-dir early-dir late-dir`
|
||||
|
||||
- Generatoren sind in
|
||||
- `/run/systemd/{system,user}-generators/*`
|
||||
- `/etc/systemd/{system,user}-generators/*`
|
||||
- `/usr/lib/systemd/{system,user}-generators/*`
|
||||
- `/usr/local/lib/systemd/{system,user}-generators/*`
|
||||
|
||||
|
||||
# Generierte Units
|
||||
|
||||
- neu generieren mit `systemctl daemon-reload`
|
||||
- generierte Units landen in
|
||||
- `normal-dir` ➤ `/run/systemd/generator`
|
||||
- `early-dir` ➤ `/run/systemd/generator.early`
|
||||
- `late-dir` ➤ `/run/systemd/generator.late`
|
||||
|
||||
# Templating
|
||||
|
||||
- generierte Units dürfen auch sein
|
||||
- Templates
|
||||
- Instanzen von Templates (`getty@tty1.service`)
|
||||
- Generatoren können auch Symlinks in `.wants/`, `.target` und `.requires/` erstellen
|
||||
|
||||
# Abhängigkeiten vermeiden
|
||||
- kein syslog oder journal benutzen
|
||||
- keine Units starten
|
||||
- keine nicht essentiellen Dateisysteme verwenden (aber /proc, /usr, /sys und /dev)
|
||||
- Generatoren werden parallel ausgeführt
|
||||
|
||||
# Performance
|
||||
|
||||
kann Boot verlangsamen ➤ Nicht mit bash implementieren, lieber C
|
||||
|
||||
# Debugging
|
||||
|
||||
```
|
||||
dir=$(mktemp -d)
|
||||
SYSTEMD_LOG_LEVEL=debug /usr/lib/systemd/system-generators/systemd-fstab-generator "$dir" "$dir" "$dir"
|
||||
find $dir
|
||||
```
|
||||
|
||||
- syslog(3) ist nicht vefügbar
|
||||
- keine Magie versuchen
|
||||
|
||||
# Nicht geeignet für
|
||||
|
||||
- Ersatz von init-Skripten
|
||||
➤ systemd-sysv-generator(8)
|
||||
- dynamische Konfigurationsdateien
|
||||
➤ `ExecStartPre=` oder Service mit `Before=`
|
||||
|
||||
# Beispiele
|
||||
|
||||
- systemd-fstab-generator(8)
|
||||
|
||||
- systemd-debug-generator(8)
|
||||
|
||||
- systemd-getty-generator(8)
|
||||
|
||||
- systemd-sysv-generator(8)
|
||||
|
||||
- systemd.environment-generator(7)
|
||||
|
||||
# Source
|
||||
|
||||
- `man 7 systemd.generator`
|
Loading…
Add table
Add a link
Reference in a new issue