web-dev-qa-db-ja.com

systemdユニットファイルサービスの場所を見つける

Systemdユニットファイルを配置できる場所はたくさんあります。サービス名だけを指定して、systemdにサービスの宣言をどこから読み取るかをすばやく簡単に確認する方法はありますか?

75

実際の静的ファイルで定義されているユニットの場合、これは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
89