Є багато різних місць, де можуть розміщуватися файли системних одиниць. Чи є швидкий і простий спосіб запитати systemd, звідки він читає декларацію служби, даючи лише назву послуги?
Є багато різних місць, де можуть розміщуватися файли системних одиниць. Чи є швидкий і простий спосіб запитати systemd, звідки він читає декларацію служби, даючи лише назву послуги?
Відповіді:
Для одиниць, визначених у фактичних статичних файлах, це можна побачити у 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)
Але є одиниці, які не визначені файлами, наприклад, із systemd-cron
встановленими. У них немає корисного місцезнаходження, вказаного з 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
У будь-якому випадку це FragmentPath
поле освоює:
$ 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