查找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