如何列出 systemd 中的所有单元,无论其状态如何,包括参数化/模板化(@)?

如何列出 systemd 中的所有单元,无论其状态如何,包括参数化/模板化(@)?

OpenVPN 单元文件是参数化的(参见@):

> ls /usr/lib/systemd/system/openvpn*
/usr/lib/systemd/system/[email protected]

问题是,systemctl如果禁用参数化服务名称,即使使用选项,也无法通过命令列出它们--all

> systemctl --full --all -t service | grep openvpn

不过,我仍然可以列出非参数化的禁用服务的名称(iptables在此示例中):

> systemctl --full --all -t service | grep iptables
iptables.service loaded inactive dead IPv4 firewall with iptables

如何获取所有单元的列表,即使其中一些单元是参数化的?

这个问题实际上更复杂(我可以轻松列出可用的单元文件来回答我自己的问题)。然而,问题在于不一致。

这似乎是一个明显的错误(或事实限制,systemd可能不知道当我们启用它时参数化服务是否真正配置)。然而,我宁愿问大家,也不愿急于下这个结论。

相关内容