Grundlegende Kommandos zu systemd

Aus Bluelupo's Wiki
Wechseln zu: Navigation, Suche

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


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.


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 betrachtet werden kann.

# systemd-analyze plot > bootplot.svg


Weitere Informationen

man systemd

man systemctl

man journalctl

freedesktop.org - systemd System and Service Manager

How To Use Systemctl to Manage Systemd Services and Units

Useful SystemD commands

Debian Wiki:systemd

Ubuntu-Wiki:Systemd

Fedora-Wiki:Systemd

Arch-Wiki:Systemd

Slow boot? Blame systemd!

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