Inhaltsverzeichnis
Welche Dienste laufen
# systemctl
Meldungen von bestimmten Bootvorgang anzeigen
Alle Meldungen vom aktuellen Bootvorgang anzeigen
# journalctl -b 0
Alle Meldungen vom letzten Bootvorgang anzeigen
# journalctl -b -1
Alle Meldungen vom vorletzten Bootvorgang anzeigen
# journalctl -b -2
Alle Bootvorgänge im Journal auflisten
# journalctl --list-boots -30 6477cc4f6bf647079859a579c5af1186 So 2015-09-27 16:50:16 CEST—So 2015-09-27 17:12:49 CEST -29 518dc782dfe142bc8d133fe963cda5d9 Mo 2015-09-28 17:09:27 CEST—Mo 2015-09-28 17:20:36 CEST -28 b1fdebebf428425db537ced67dc99e01 Mo 2015-09-28 17:21:00 CEST—Mo 2015-09-28 21:50:42 CEST -27 40af3ecb278c46858e5fe232d627b5ba Di 2015-09-29 17:04:29 CEST—Di 2015-09-29 22:01:11 CEST -26 e57872a9c89d4b9f9620f145eb521dca Mi 2015-09-30 17:56:09 CEST—Mi 2015-09-30 21:38:08 CEST -25 34cba02a84a240c9b25168684c6d26ee Do 2015-10-01 19:20:56 CEST—Do 2015-10-01 21:55:38 CEST -24 e3bf02a739dd461797f23be4a6b4083a Fr 2015-10-02 07:31:15 CEST—Fr 2015-10-02 21:42:26 CEST -23 3b756bc354504a9eb9f6c3d26e257fb2 Sa 2015-10-03 17:01:01 CEST—Sa 2015-10-03 21:37:40 CEST -22 e098b95fb169499b9d7fdbcb59165ba6 Sa 2015-10-03 21:57:38 CEST—Sa 2015-10-03 22:21:47 CEST -21 5b372d823a08470d9e68e575ac3656c1 So 2015-10-04 11:34:22 CEST—So 2015-10-04 11:38:18 CEST -20 667ef39f636440738eef9e73ab26feb0 So 2015-10-04 11:38:41 CEST—So 2015-10-04 21:34:15 CEST -19 3cf92b8979af4e019970ef9835c9e908 Mo 2015-10-05 18:21:50 CEST—Mo 2015-10-05 22:16:52 CEST -18 ec3ba6e97239441c9ef3efbdb59140c3 Mi 2015-10-07 18:06:42 CEST—Mi 2015-10-07 21:25:40 CEST -17 042a308f35d045839f7d62ea400393cc Do 2015-10-08 17:21:01 CEST—Do 2015-10-08 21:28:45 CEST -16 e56011333b294326a9edd9c85a0c5359 Fr 2015-10-09 07:40:19 CEST—Fr 2015-10-09 16:04:51 CEST -15 9ad646b8d70947f192c9ed124945ba87 Sa 2015-10-10 09:35:17 CEST—Sa 2015-10-10 21:21:28 CEST -14 4c6a1a3ee4ba4f84b76e565c546ffd68 So 2015-10-11 10:00:02 CEST—So 2015-10-11 21:36:57 CEST -13 a9be38af505d453aaee412bafbbb773e Mo 2015-10-12 17:01:55 CEST—Mo 2015-10-12 21:57:40 CEST -12 65c48e2a3b794d71a3f537583e4b4643 Di 2015-10-13 17:02:35 CEST—Di 2015-10-13 17:47:56 CEST -11 a6150785d49b4c91ab88e09beb20c9a4 Di 2015-10-13 17:48:18 CEST—Di 2015-10-13 21:56:00 CEST -10 5157f26c9f6f4ebea01923326833f11d Mi 2015-10-14 16:56:27 CEST—Mi 2015-10-14 17:02:04 CEST -9 3e59c388c97e479680c1a4c6795a7688 Mi 2015-10-14 17:02:28 CEST—Mi 2015-10-14 23:04:20 CEST -8 7f67fbd637e1413bbeb7c4681b080933 Do 2015-10-15 17:42:53 CEST—Do 2015-10-15 22:01:12 CEST -7 0373a9e005b94f618b9375a4f05499cf Fr 2015-10-16 07:16:44 CEST—Fr 2015-10-16 21:27:15 CEST -6 18ee0947275548b0a3c4e06cba10da6a Sa 2015-10-17 16:22:02 CEST—Sa 2015-10-17 21:25:29 CEST -5 ab2e21d604fd4720800d1a2462725dad So 2015-10-18 09:04:58 CEST—So 2015-10-18 18:18:10 CEST -4 5073e06a424d4a1d8b418e7951139671 So 2015-10-18 18:18:29 CEST—So 2015-10-18 21:30:43 CEST -3 ce6842c28b9544228ae8cd9fed9446fb Mo 2015-10-19 10:26:09 CEST—Mo 2015-10-19 21:39:16 CEST -2 e82125cb91d94c809285b8a70910b9a0 Di 2015-10-20 15:25:01 CEST—Di 2015-10-20 21:23:08 CEST -1 32cdeb8a3b294cc49d9d2a754e651f1d Mi 2015-10-21 07:38:42 CEST—Mi 2015-10-21 08:59:03 CEST 0 e8f83bcc35514760b43cc5fc0444cadf Mi 2015-10-21 08:59:27 CEST—Mi 2015-10-21 09:56:43 CEST
Bestimmten Bootvorgang mit einer bekannten ID anzeigen
# journalctl --boot=667ef39f636440738eef9e73ab26feb0
Welche Dienste haben einen Fehler gemeldet
# systemctl --failed
Aktualisierende Anzeige des Journals
Ähnlich einen tail -f
aktualisiert sich die Anzeige am Bildschirm laufend.
# journalctl -f
Journal Ausgabe filtern
Alle Meldungen von gestern und heute des cron Service anzeigen
# journalctl -u cron.service --since=yesterday
Alle Meldungen des cron Service zwischen 7:00 und 8:00 Uhr
# journalctl -u cron.service --since='2014-05-12 07:00' --until='2014-05-12 08:00'
Alle Meldungen der letzten fünf Minuten anzeigen
# journalctl --since "5 min ago"
Alle wichtigen Meldungen (Priority 2 entspricht emerg, alert und crit) von heute anzeigen. Dies entpricht den Klassen des syslog-Daemon. emerg (0), alert (1), crit (2), err (3), warning (4), notice (5), info (6), debug (7).
# journalctl -p 2 --since=today
Status eines Dateisystems abfragen
Auch Dateisysteme bzw. Devices können abgefragt werden.
# systemctl status /boot ● boot.mount - /boot Loaded: loaded (/etc/fstab) Active: active (mounted) since Mi 2015-10-21 10:31:50 CEST; 4h 12min ago Where: /boot What: /dev/sda1 Docs: man:fstab(5) man:systemd-fstab-generator(8) Process: 618 ExecMount=/bin/mount /dev/disk/by-label/BOOT /boot -t ext4 -o defaults,relatime,errors=remount-ro (code=exited, status=0/SUCCESS) Okt 21 10:31:49 darthvader systemd[1]: Mounting /boot... Okt 21 10:31:50 darthvader systemd[1]: Mounted /boot.
# systemctl status /dev/sda1 ● dev-sda1.device - INTEL_SSDSC2BW240A3L BOOT Follow: unit currently follows state of sys-devices-pci0000:00-0000:00:1f.2-ata1-host0-target0:0:0-0:0:0:0-block-sda-sda1.device Loaded: loaded Active: active (plugged) since Mi 2015-10-21 10:31:49 CEST; 4h 13min ago Device: /sys/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda/sda1
Logmeldungen eines nicht laufenden Systems ansehen
z.B. die Logmeldungen eines Backup (/var) ansehen. Dazu müssen die Daten in geeigneter Weise für das system.journal
zur Verfügung stehen, im Beispiel via Mount-Kommando einer gesichertern /var-Partition.
# mount ./LVvar-20140514_1155.dd /media/loop # cd /media/loop/log/journal/9dd891f2123ca26f8f3558d752e6cf59 # ll insgesamt 10752 -rw-r-----+ 1 root utempter 9875456 Mai 14 11:59 system.journal -rw-r-----+ 1 root utempter 1114112 Mai 11 21:54 user-1000.journal # journalctl -D /media/loop/log/journal/9dd891f2123ca26f8f3558d752e6cf59
Welche Programme vom Type 'service' laufen
Typen sind zB. mount, service, mount, device, socket, target
# systemctl --type=service
Service stoppen, starten, restarten oder den Status ermitteln
# systemctl [stop|start|restart|reload|status] sshd.service # systemctl [stop|start|restart|reload|status] network.service
Service dauerhaft aktivieren
# systemctl enable nfs-server.service
Service dauerhaft deaktivieren
# systemctl disable nfs-server.service
Service stoppen, deaktivieren und entfernen/löschen
# systemctl stop [name.service] # systemctl disable [name.service] Auch Links, wenn vorhanden entfernen (Vorsicht) # rm /etc/systemd/system/[name.service] Auch Links, wenn vorhanden entfernen (Vorsicht) rm /usr/lib/systemd/system/[name.service] # systemctl daemon-reload # systemctl reset-failed
Ist ein Service aktiviert schon ab dem Systemstart
# systemctl is-enabled nfs-server.service; echo $?
Wechsel in den Multi-User-Target (ehemals Runlevel 3)
# systemctl isolate multi-user.target # systemctl isolate runlevel3.target
Wechsel in den Graphical-Target (ehemals Runlevel 5)
# systemctl isolate graphical.target # systemctl isolate runlevel5.target
Anzeige des Default-Target
# systemctl get-default
Zuordnung der ehemaligen Runlevel zu den aktuellen Targets
Mit dem Listing sieht man sehr übersichlich welches ehemalige Runlevel zu welchen Target geworden ist.
$ ls -al /lib/systemd/system/runlevel* lrwxrwxrwx 1 root root 15 Feb 1 15:31 /lib/systemd/system/runlevel0.target -> poweroff.target lrwxrwxrwx 1 root root 13 Feb 1 15:31 /lib/systemd/system/runlevel1.target -> rescue.target lrwxrwxrwx 1 root root 17 Feb 1 15:31 /lib/systemd/system/runlevel2.target -> multi-user.target lrwxrwxrwx 1 root root 17 Feb 1 15:31 /lib/systemd/system/runlevel3.target -> multi-user.target lrwxrwxrwx 1 root root 17 Feb 1 15:31 /lib/systemd/system/runlevel4.target -> multi-user.target lrwxrwxrwx 1 root root 16 Feb 1 15:31 /lib/systemd/system/runlevel5.target -> graphical.target lrwxrwxrwx 1 root root 13 Feb 1 15:31 /lib/systemd/system/runlevel6.target -> reboot.target
Default-Target ändern
Ändern des Default-Target, also in welches Taget (ehemals Runlevel) beim Systemstart gebootet werden soll. Hier im Beispiel wird vom Graphical-Target (ehemals Runlevel 5) auf das Multi-User-Target (ehemals Runlevel 3) gewechselt.
Anzeige Default Target:
# systemctl get-default graphical.target
Setzen des neuen Default-Target:
# systemctl set-default multi-user.target
Anzeige Default Target:
# systemctl get-default multi-user.target
Welche Targets sind gerade aktiv
# systemctl list-units --type=target UNIT LOAD ACTIVE SUB DESCRIPTION basic.target loaded active active Basic System cryptsetup.target loaded active active Encrypted Volumes getty.target loaded active active Login Prompts graphical.target loaded active active Graphical Interface local-fs-pre.target loaded active active Local File Systems (Pre) local-fs.target loaded active active Local File Systems multi-user.target loaded active active Multi-User System network-online.target loaded active active Network is Online network.target loaded active active Network nfs-client.target loaded active active NFS client services nss-lookup.target loaded active active Host and Network Name Lookups nss-user-lookup.target loaded active active User and Group Name Lookups paths.target loaded active active Paths remote-fs-pre.target loaded active active Remote File Systems (Pre) remote-fs.target loaded active active Remote File Systems rpcbind.target loaded active active RPC Port Mapper slices.target loaded active active Slices sockets.target loaded active active Sockets sound.target loaded active active Sound Card swap.target loaded active active Swap sysinit.target loaded active active System Initialization time-sync.target loaded active active System Time Synchronized timers.target loaded active active Timers LOAD = Reflects whether the unit definition was properly loaded. ACTIVE = The high-level unit activation state, i.e. generalization of SUB. SUB = The low-level unit activation state, values depend on unit type. 23 loaded units listed. Pass --all to see loaded but inactive units, too. To show all installed unit files use 'systemctl list-unit-files'.
Welche Targets (ehemals Runlevel) gibt es
# systemctl list-units --type=target --all UNIT LOAD ACTIVE SUB DESCRIPTION basic.target loaded active active Basic System cryptsetup.target loaded active active Encrypted Volumes emergency.target loaded inactive dead Emergency Mode getty.target loaded active active Login Prompts graphical.target loaded active active Graphical Interface local-fs-pre.target loaded active active Local File Systems (Pre) local-fs.target loaded active active Local File Systems mail-transport-agent.target not-found inactive dead mail-transport-agent.target multi-user.target loaded active active Multi-User System network-online.target loaded active active Network is Online network-pre.target loaded inactive dead Network (Pre) network.target loaded active active Network nfs-client.target loaded active active NFS client services nss-lookup.target loaded active active Host and Network Name Lookups nss-user-lookup.target loaded active active User and Group Name Lookups paths.target loaded active active Paths remote-fs-pre.target loaded active active Remote File Systems (Pre) remote-fs.target loaded active active Remote File Systems rescue.target loaded inactive dead Rescue Mode rpcbind.target loaded active active RPC Port Mapper shutdown.target loaded inactive dead Shutdown slices.target loaded active active Slices sockets.target loaded active active Sockets sound.target loaded active active Sound Card swap.target loaded active active Swap sysinit.target loaded active active System Initialization syslog.target not-found inactive dead syslog.target time-sync.target loaded active active System Time Synchronized timers.target loaded active active Timers umount.target loaded inactive dead Unmount All Filesystems LOAD = Reflects whether the unit definition was properly loaded.
Alle Units anzeigen vom Type Service die inaktiv sind
# systemctl list-units --all --type=service --state=inactive --no-pager UNIT LOAD ACTIVE SUB DESCRIPTION acpi-fakekey.service loaded inactive dead ACPI fakekey daemon alsa-restore.service loaded inactive dead Restore Sound Card State alsa-state.service loaded inactive dead Manage Sound Card State (restore and store) alsa-store.service loaded inactive dead Store Sound Card State [...] systemd-sysusers.service not-found inactive dead systemd-sysusers.service systemd-tmpfiles-clean.service loaded inactive dead Cleanup of Temporary Directories systemd-udev-hwdb-update.service not-found inactive dead systemd-udev-hwdb-update.service systemd-update-utmp-runlevel.service loaded inactive dead Update UTMP about System Runlevel Changes systemd-vconsole-setup.service not-found inactive dead systemd-vconsole-setup.service LOAD = Reflects whether the unit definition was properly loaded. ACTIVE = The high-level unit activation state, i.e. generalization of SUB. SUB = The low-level unit activation state, values depend on unit type. 51 loaded units listed. To show all installed unit files use 'systemctl list-unit-files'.
Eine Unit-Datei anzeigen
Die Service-Datei des cron anzeigen
# systemctl cat cron.service --no-pager # /lib/systemd/system/cron.service [Unit] Description=Regular background program processing daemon Documentation=man:cron(8) [Service] EnvironmentFile=-/etc/default/cron ExecStart=/usr/sbin/cron -f $EXTRA_OPTS IgnoreSIGPIPE=false KillMode=process [Install] WantedBy=multi-user.target
Das Unit-File vom Typ target
anzeigen.
# systemctl cat multi-user.target # /lib/systemd/system/multi-user.target # This file is part of systemd. [Unit] Description=Multi-User System Documentation=man:systemd.special(7) Requires=basic.target Conflicts=rescue.service rescue.target After=basic.target rescue.service rescue.target AllowIsolate=yes
Die Eigenschaften (Properties) einer Unit anzeigen
Alle Eigenschaften auflisten.
# systemctl show cron.service --no-pager Type=simple Restart=no NotifyAccess=none RestartUSec=100ms TimeoutStartUSec=1min 30s TimeoutStopUSec=1min 30s WatchdogUSec=0 [...]
Spezielle Eigenschaften (Property) einer Unit anzeigen
In welchen Runlevel (Target) läuft der Cron-Service.
# systemctl show cron.service --property=WantedBy --no-pager WantedBy=multi-user.target
System anhalten
# systemctl halt
Suspendmode
# systemctl suspend
Ausschalten
# systemctl poweroff
Reboot
# systemctl reboot
Journal persistent machen
Standardmäßig speichert das Journal Protokolldaten in /run/log/journal/. Da /run/flüchtig ist, gehen die Protokolldaten beim Neustart verloren. Um die Daten persistent zu machen, genügt es, /var/log/journal/ zu erzeugen, wobei systemd-journald dann die Daten speichert.
# mkdir -p /var/log/journal # systemd-tmpfiles --create --prefix /var/log/journal
Evtl. ist in /etc/systemd/journald.conf unter [Journal] die Option 'Storage=persistent
' noch zu aktivieren. Die Option ForwardToSyslog=yes
sollte dann natürlich deaktiviert werden.
Journalgröße limitieren
Um die Logmeldungen nicht ins unermessliche wachsen zu lassen kann die Größe des Verzeichnisses /var/log/journal
beschränkt werden. Dazu muss man in der Konfigurationsdatei /etc/systemd/journald.conf
den Wert SystemMaxUse
zB. auf 512 MByte beschränken.
SystemMaxUse=512M
Ab dem nächsten Reboot ist diese Beschränkung aktiv.
Journal händisch verkleinern
Alle alten Einträge, bis das Journal die gewünschte Größe erreicht, werden gelöscht (hier 200 MByte).
# journalctl --vacuum-size=200M
Dieser Befehl verwirft alle Meldungen die älter als 3 Monate sind, ungeachtet der momentanen Größe der Protokolldatei.
# journalctl --vacuum-time=3month
Detailliertere Logmeldung
Um mehr Informationen vom systemd
zu bekommen muss man den Debuglevel einschalten mit der Variable SYSTEMD_LOG_LEVEL
. Dazu stoppt man den betreffenden Dienst (hier systemd-networkd) und editiert die entsprechende Servicedatei unter /lib/systemd
und setzt die nachfolgende Zeile in dieser Datei.
Dienst stoppen:
# systemctl stop systemd-networkd
Zeile in /lib/systemd/system/systemd-networkd.service
ergänzen unter Abschnitt [Service]
.
SYSTEMD_LOG_LEVEL=debug /lib/systemd/systemd-networkd
Danach den Dienst wieder starten und die Meldungen in einer zweiten Konsole verfolgen.
# systemctl start systemd-networkd # journal -f -u systemd-networkd
Logmeldungen im Journal erzeugen
Das logger
Kommando ist im systemd gleich mit integriert, dazu nutzt man systemd-cat
. Das ist mitunter in Shellscripten recht nützlich.
# echo 'informative Meldung' | systemd-cat -t someapp -p info Apr 06 13:27:55 snowcat someapp[31560]: informative Meldung # echo 'eine Warnmeldung' | systemd-cat -t someapp -p warning Apr 06 13:28:26 snowcat someapp[31686]: eine Warnmeldung # echo 'einen kritischen Fehler' | systemd-cat -t someapp -p emerg Broadcast message from systemd-journald@snowcat (Wed 2016-04-06 13:28:49 CEST): someapp[31786]: ein kritischen Fehler Apr 06 13:28:49 snowcat someapp[31786]: einen kritischen Fehler
Verzeichnisse des systemd
/lib/systemd/system
/etc/systemd/system/
Bootvorgang chronologisch auflisten
Dies listet die Startzeiten der jeweiligen Dienste während des Bootvorgangs auf. Hiermit kann man Services aufspüren die ungewöhnliche lange zum Starten brauchen.
# systemd-analyze blame 2.738s networking.service 2.439s lvm2-activation-early.service 1.078s uml-utilities.service 847ms systemd-fsck@dev-disk-by\x2dlabel-VIDEO.service 620ms systemd-fsck@dev-disk-by\x2dlabel-MUSIC.service 559ms systemd-udev-settle.service 519ms systemd-fsck@dev-disk-by\x2dlabel-VM\x2dNORMAL.service 514ms systemd-fsck@dev-disk-by\x2dlabel-USERDATA.service 483ms lvm2-activation.service 420ms systemd-fsck@dev-disk-by\x2dlabel-MISC.service 387ms mnt-import-dataexchange.mount 319ms vboxdrv.service 310ms mediatomb.service 308ms systemd-fsck@dev-disk-by\x2dlabel-PHOTO.service 305ms postfix.service 295ms mnt-import-archive.mount 172ms mnt-vm-normal.mount 150ms gpm.service 148ms binfmt-support.service 122ms systemd-logind.service 122ms loadcpufreq.service 106ms lm-sensors.service 102ms alsa-restore.service 102ms console-kit-log-system-start.service 101ms pppd-dns.service 97ms rsyslog.service 96ms rc-local.service 96ms systemd-user-sessions.service 96ms motion.service 95ms mnt-share-music.mount 95ms saned.service 95ms nfs-kernel-server.service 94ms ifplugd.service 93ms kexec.service 93ms ntp.service 93ms sysstat.service 90ms irqbalance.service 88ms acpi-support.service 86ms nfs-common.service 83ms keyboard-setup.service 72ms console-setup.service 71ms mnt-share-photo.mount 69ms mnt-import-vm.mount 64ms systemd-fsck-root.service 57ms mnt-share-userdata.mount 54ms systemd-update-utmp.service 53ms systemd-modules-load.service 51ms console-kit-daemon.service 47ms systemd-tmpfiles-setup-dev.service 46ms lvm2-monitor.service 40ms dirmngr.service 39ms udisks2.service 39ms mnt-import-rsnapshot.mount 38ms mnt-share-misc.mount 37ms rpcbind.service 35ms kbd.service 32ms systemd-tmpfiles-clean.service 28ms systemd-fsck@dev-disk-by\x2dlabel-HOME.service 27ms systemd-update-utmp-runlevel.service 26ms sys-kernel-debug.mount 25ms systemd-fsck@dev-disk-by\x2dlabel-VM\x2dFAST.service 25ms dev-mqueue.mount 24ms systemd-fsck@dev-disk-by\x2dlabel-VAR.service 24ms dev-hugepages.mount 24ms kdm.service 23ms polkitd.service 22ms systemd-udev-trigger.service 22ms systemd-tmpfiles-setup.service 18ms mnt-share-videostream.mount 18ms user@1000.service 18ms lvm2-pvscan@8:17.service 16ms lvm2-pvscan@8:1.service 15ms hdparm.service 13ms upower.service 10ms systemd-backlight@backlight:acpi_video0.service 9ms home.mount 9ms keymap.service 8ms dns-clean.service 8ms dev-disk-by\x2duuid-5d5979de\x2d85ac\x2d440a\x2db647\x2dcac2026b301e.swap 8ms hddtemp.service 7ms systemd-random-seed.service 7ms var.mount 7ms systemd-journal-flush.service 7ms mnt-vm-fast.mount 6ms kmod-static-nodes.service 5ms resolvconf.service 4ms systemd-sysctl.service 4ms systemd-remount-fs.service 3ms proc-sys-fs-binfmt_misc.mount 3ms cpufrequtils.service 3ms systemd-udevd.service 2ms vboxballoonctrl-service.service 2ms udev-finish.service 2ms vboxweb-service.service 2ms kexec-load.service 2ms vboxautostart-service.service 1ms sys-fs-fuse-connections.mount 1ms qemu-system-x86.service
Graphische Auswertung des Bootvorgangs
Erzeugt eine SVG-Graphik die z.B. mit gwenview oder im Browser betrachtet werden kann.
# systemd-analyze plot > bootplot.svg
Alternativ würde der folgende Befehl ein ähnliche Grafik erstellen (kann durchaus eine Minute dauern).
# systemd-analyze dot | dot -Tsvg > systemd.svg
Da die Grafik system.svg von den Ausmaßen sehr groß werden kann, sollte man sich auf den benötigten Teilbereich beschränken. Hier im Beispiel wird der Service cups dargestellt.
# systemd-analyze dot 'cups*' | dot -Tsvg > cups.svg
Sollte man eine PNG- oder JPG-Grafik bevorzugen kann man die SVG-Datei dementsprechend konvertieren.
$ systemd-analyze dot 'cups*' | dot -Tsvg | convert - cups.png
Weitere Informationen
In den Manpages sind detaillierte Informationen nachzulesen.
# man systemd # man systemctl # man journalctl # man journald.conf # man systemd-system.conf
LinuxUser - Mit Journalctl die Systemd-Protokolle auswerten
freedesktop.org - systemd System and Service Manager
How To Use Systemctl to Manage Systemd Services and Units
ADMIN-Magazin: Syslog oder kein Syslog, das ist hier die Frage
Artikelreihe aus Archiv auf 0pointer.net "systemd for Administrators" oder alle Artikel über Startpage-Suche
RedHat System Administrator's Guide - Chapter 8. Managing Services With Systemd