Zum Inhalt springen

Systemd/Beispiele

Aus Foxwiki

Welche Dienste laufen

sudo systemctl

Alle Meldungen vom letzten Bootvorgang anzeigen

sudo journalctl -b -1

Welche Dienste haben einen Fehler gemeldet

sudo systemctl --failed

Aktualisierende Anzeige

Ähnlich einen tail -f aktualisiert sich die Anzeige am Bildschirm laufend

sudo journalctl -f

Ausgabe filtern

Alle Meldungen von gestern und heute des cron Service anzeigen

sudo journalctl -u cron.service --since=yesterday

Alle Meldungen des cron Service zwischen 7:00 und 8:00 Uhr

sudo 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)
sudo journalctl -p 2 --since=today

Logmeldungen eines nicht laufenden Systems ansehen

beispielsweise 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
sudo mount ./LVvar-20140514_1155.dd /media/loop
sudo cd /media/loop/log/journal/9dd891f2123ca26f8f3558d752e6cf59
sudo 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
sudo journalctl -D /media/loop/log/journal/9dd891f2123ca26f8f3558d752e6cf59

Welche Programme vom Type 'service' laufen

Typen sind zB

  • mount, service, mount, device, socket, target
sudo systemctl --type=service

Service stoppen, starten, restarten oder den Status ermitteln

sudo systemctl sshd.service [stop|start|restart|reload|status]
sudo systemctl network.service [stop|start|restart|reload|status]


Service dauerhaft aktivieren

sudo systemctl enable nfs-server.service

Service dauerhaft deaktivieren

sudo systemctl disable nfs-server.service

Ist ein Service aktiviert schon ab dem Systemstart

sudo systemctl is-enabled nfs-server.service; echo $?

Wechsel in den Runlevel 3

sudo systemctl isolate multi-user.target
sudo systemctl isolate runlevel3.target

Wechsel in den Runlevel 5

sudo systemctl isolate graphical.target
sudo systemctl isolate runlevel5.target

Welche Runlevel gibt es

sudo 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

sudo 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

sudo systemctl cat cron.service --no-pager
sudo /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

sudo 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

sudo systemctl show cron.service --property=WantedBy --no-pager
WantedBy=multi-user.target

System anhalten

sudo systemctl halt

Suspendmode

sudo systemctl suspend

Ausschalten

sudo systemctl poweroff

Reboot

sudo 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:

sudo 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

sudo systemctl start systemd-networkd
sudo 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
sudo 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 beispielsweise mit gwenview betrachtet werden kann

sudo systemd-analyze plot > bootplot.svg