如何列出systemd中的所有单元,而不pipe它们的状态如何,包括参数化/模板化(@)?

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 

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

问题其实更加复杂(我可以轻松地列出可用的单元文件来回答自己)。 但是,问题在于不一致。

这似乎是一个明显的bug(或限制systemd不太了解参数化服务是否在我们启用时实际configuration)的事实。 不过,我宁愿问人群,也不要跳出这个结论。