Es gibt viele verschiedene Orte, an denen System-Unit-Dateien abgelegt werden können. Gibt es eine schnelle und einfache Möglichkeit, systemd zu fragen, woher es die Erklärung eines Dienstes liest, wenn nur der Dienstname angegeben wird?
Es gibt viele verschiedene Orte, an denen System-Unit-Dateien abgelegt werden können. Gibt es eine schnelle und einfache Möglichkeit, systemd zu fragen, woher es die Erklärung eines Dienstes liest, wenn nur der Dienstname angegeben wird?
Antworten:
Für Einheiten, die in tatsächlichen, statischen Dateien definiert sind, ist dies ersichtlich in systemctl status
:
$ systemctl status halt-local.service
● halt-local.service - /usr/sbin/halt.local Compatibility
Loaded: loaded (/lib/systemd/system/halt-local.service; static)
Active: inactive (dead)
Es gibt aber auch Einheiten, die nicht durch Dateien definiert sind, zB mit systemd-cron
installiertem. Diese haben keinen nützlichen Ort mit status
:
$ systemctl status cron-jojo-0.timer
● cron-jojo-0.timer - [Cron] "*/10 * * * * ..."
Loaded: loaded (/var/spool/cron/crontabs/jojo)
Active: active (waiting) since Mon 2015-05-18 14:53:01 UTC; 9min ago
In beiden Fällen bildet das FragmentPath
Feld jedoch aus:
$ systemctl show -p FragmentPath cron-daily.service
FragmentPath=/lib/systemd/system/cron-daily.service
$ systemctl show -p FragmentPath cron-jojo-0.service
FragmentPath=/run/systemd/generator/cron-jojo-0.service
$ systemctl show -p FragmentPath halt-local.service
FragmentPath=/lib/systemd/system/halt-local.service