systemd v Linuxesystemd je moderný init systém a správca služieb používaný v Linuxe.
Je to prvý proces, ktorý sa spustí po načítaní jadra (má PID 1), a stará sa o spúšťanie
všetkých ostatných procesov, služieb a systémových funkcií.
Po načítaní jadra Linuxu sa vykoná:
/sbin/init → symlink → /lib/systemd/systemd
Tým sa spustí proces systemd ako PID 1.
Systemd načítava jednotky (units) z týchto priečinkov:
/etc/systemd/system/ – používateľské úpravy/run/systemd/system/ – dočasné jednotky/lib/systemd/system/ – systémové predvolené jednotkyKaždá služba, mount alebo cieľ je definovaný v súbore s príponou
.service, .target, .mount, .socket, .timer atď.
# /lib/systemd/system/sshd.service
[Unit]
Description=OpenSSH server daemon
After=network.target
[Service]
ExecStart=/usr/sbin/sshd -D
Restart=always
[Install]
WantedBy=multi-user.target
Systemd používa tzv. targets namiesto starých "runlevelov".
| Runlevel | systemd Target | Popis |
|---|---|---|
| 1 | rescue.target | Jednouchý režim (single user) |
| 3 | multi-user.target | Bežný textový režim |
| 5 | graphical.target | Grafické prostredie |
| 0 | poweroff.target | Vypnutie systému |
| 6 | reboot.target | Reštart systému |
Systemd dokáže spúšťať služby paralelne podľa ich závislostí
(After=, Requires=), čo výrazne zrýchľuje štart systému.
Na správu služieb sa používa príkaz systemctl:
systemctl status sshd.service # stav služby
systemctl start sshd.service # spustiť
systemctl stop sshd.service # zastaviť
systemctl restart sshd.service # reštartovať
systemctl enable sshd.service # spúšťať pri štarte
systemctl disable sshd.service # nespúšťať pri štarte
Systemd má vlastný systém logovania (journald):
journalctl # všetky logy
journalctl -b # logy od posledného bootu
journalctl -u sshd # logy konkrétnej služby
Na analýzu rýchlosti štartu systému:
systemd-analyze
systemd-analyze blame
systemd-analyze critical-chain
| Funkcia | Komponent |
|---|---|
| Init proces | /lib/systemd/systemd |
| Správa služieb | systemctl |
| Logovanie | journald |
| Čas a dátum | timedated |
| Sieť | networkd |
| Používatelia | logind |
| Automatické úlohy | systemd-timer |