Temukan lokasi layanan systemd

62

Ada banyak tempat berbeda di mana file unit systemd dapat ditempatkan. Apakah ada cara cepat dan mudah untuk bertanya kepada systemd dari mana ia membaca deklarasi layanan, hanya dengan memberikan nama layanan?

Joachim Breitner
sumber

Jawaban:

75

Untuk unit yang didefinisikan dalam file statis aktual, ini dapat dilihat di 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)

Tetapi ada unit yang tidak ditentukan oleh file, misalnya dengan systemd-crondiinstal. Ini tidak memiliki lokasi yang berguna terdaftar dengan 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

Namun dalam kedua kasus tersebut, FragmentPathbidang ini mendidik:

$ 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
Joachim Breitner
sumber