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
如何获取所有单元的列表,即使其中一些单元是参数化的?
这个问题实际上更复杂(我可以轻松列出可用的单元文件来回答我自己的问题)。然而,问题在于不一致。
- 当
[email protected]
服务启用后,可以通过上述命令列出。 - 当
[email protected]
服务被禁用时,它就不能。
这似乎是一个明显的错误(或事实限制,systemd
可能不知道当我们启用它时参数化服务是否真正配置)。然而,我宁愿问大家,也不愿急于下这个结论。