Systemd/Anwendungen
Anwendungen
Welche Dienste laufen
- systemctl
Alle Meldungen vom letzten Bootvorgang anzeigen
- journalctl -b -1
Welche Dienste haben einen Fehler gemeldet
- systemctl --failed
Aktualisierende Anzeige
Ähnlich einen tail -f aktualisiert sich die Anzeige am Bildschirm laufend
- journalctl -f
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 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
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 sshd.service [stop|start|restart|reload|status]
- systemctl network.service [stop|start|restart|reload|status]
Service dauerhaft aktivieren
- systemctl enable nfs-server.service
Service dauerhaft deaktivieren
- systemctl disable nfs-server.service
Ist ein Service aktiviert schon ab dem Systemstart
- systemctl is-enabled nfs-server.service; echo $?
Wechsel in den Runlevel 3
- systemctl isolate multi-user.target
- systemctl isolate runlevel3.target
Wechsel in den Runlevel 5
- systemctl isolate graphical.target
- systemctl isolate runlevel5.target
Welche Runlevel gibt es
- 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 mail-transport-agent.target loaded active active Mail Transport Agent multi-user.target loaded active active Multi-User System network-online.target loaded active active Network is Online network.target loaded active active Network 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 swap.target loaded active active Swap sysinit.target loaded active active System Initialization 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
19 loaded units listed
- Pass --all to see loaded but inactive units, too
To show all installed unit files use 'systemctl list-unit-files'
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
- 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
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
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
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
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 betrachtet werden kann
- systemd-analyze plot > bootplot.svg