systemd:停止所有 OpenVPN 进程

systemd:停止所有 OpenVPN 进程

刚开始使用 systemd,需要停止并启动 OpenVPN。

例如,我可以成功启动 OpenVPN:

systemctl start [email protected]

并可以通过以下方式停止它:

systemctl stop [email protected]

不过,我希望能够在脚本中停止 openvpn,而不必知道当前连接的是哪个 VPN。以前我会使用:

service stop openvpn

使用 systemctl 可以吗?

答案1

您可以使用模式(包括壳球)与systemctl命令。看man systemctl

shell 风格的 glob 将与当前加载的单元进行匹配;文字单位名称,无论带或不带后缀,都将被视为第一种情况。这意味着字面量单位名称始终精确地引用一个单位,但 glob 可能匹配零个单位,并且这不被视为错误。

全局模式使用 fnmatch(3),因此使用正常的 shell 样式的全局规则,并且可以使用“*”、“?”、“[]”。有关更多详细信息,请参阅 glob(7)。这些模式与当前加载的单元的名称进行匹配,不匹配任何内容的模式将被静默跳过。例如:

        # systemctl stop sshd@*.service

将停止所有[电子邮件受保护]实例。

因此,就您的情况而言:systemctl stop openvpn*应该停止所有 OpenVPN 服务。

相关内容