如何根据命令的输出启动服务?

如何根据命令的输出启动服务?

我想在另一项服务完成后启动一项特定服务完全地开始了。具体来说,我需要启动 OpenVPN 服务并完成启动才能启动另一个服务。

我通常会使用After=,但它无法按 OpenVPN 的预期工作,这表明它已在启动后和设置完成之前立即启动。

解决方案是将我的服务的启动限制为脚本的输出或退出状态(*)(或限制由所述脚本创建的文件的存在)。

这可以用 systemd 实现吗?


(*)该脚本将 ping 已知只能通过 VPN 隧道访问的主机,并在实现连接后退出(或删除文件)

答案1

您可以配置服务单元

Type=notify
NotifyAccess=all

并使 OpenVPN 在初始化期间启动的最后一个脚本(或其子脚本)(等待所需的日志输出,然后)调用systemd-notify.

相关内容