查找 systemd 单元文件服务的位置

Joa*_*ner 110 systemd

有许多不同的地方可以放置 systemd 单元文件。仅给定服务名称,是否有一种快速简便的方法可以询问 systemd 从何处读取服务声明?

Joa*_*ner 125

对于在实际静态文件中定义的单元,这可以在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)
Run Code Online (Sandbox Code Playgroud)

但是有些单位不是由文件定义的,例如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
Run Code Online (Sandbox Code Playgroud)

但是,无论哪种情况,该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
Run Code Online (Sandbox Code Playgroud)


小智 31

你可以cat systemd 单元。这将文件位置显示为注释。奖励:它还显示覆盖。

systemctl cat sssd
# /lib/systemd/system/sssd.service
[Unit]
...

# /etc/systemd/system/sssd.service.d/override.conf
[Unit]
...
Run Code Online (Sandbox Code Playgroud)