显示一个 systemd 单元文件及其合并的覆盖

Sea*_*ean 8 systemd systemd-service

systemctl cat myunit.service打印主文件的内容myunit.service,然后打印任何覆盖文件。有没有一种方法可以打印 systemd 实际使用的单元文件,即通过将覆盖合并到主单元中而形成的文件?

小智 9

您可以用来systemctl show myunit.service显示单位的属性。它将打印与该单元文件、全局配置以及单元文件中进行的任何自定义关联的所有属性。

默认情况下,空属性被抑制。使用 --all 也可以显示这些。

systemctl show myunit.service --all

如果您想检查给定的属性,请使用以下语法:

systemctl show myunit.service --property=<PROPERTY_NAME> 

#example
#systemctl show myunit.service --property=ExecStart 
Run Code Online (Sandbox Code Playgroud)

请注意,输出可能不完全符合您的预期:

请注意,该命令显示的属性通常是原始配置设置的更低级别的标准化版本,并且除了配置之外还公开运行时状态。例如,为服务单元显示的属性包括服务的当前主进程标识符“MainPID”(这是运行时状态),并且即使有匹配的配置选项,时间设置也始终显示为以“...USec”后缀结尾的属性以“...Sec”结尾,因为微秒是系统和服务管理器内部使用的标准化时间单位。

有关其中许多属性的详细信息,请参阅支持这些属性的 D-Bus 接口的文档,请参阅org.freedesktop.systemd1(5)