我想在另一项服务完成后启动一项特定服务完全地开始了。具体来说,我需要启动 OpenVPN 服务并完成启动才能启动另一个服务。
我通常会使用After=
,但它无法按 OpenVPN 的预期工作,这表明它已在启动后和设置完成之前立即启动。
解决方案是将我的服务的启动限制为脚本的输出或退出状态(*)(或限制由所述脚本创建的文件的存在)。
这可以用 systemd 实现吗?
(*)该脚本将 ping 已知只能通过 VPN 隧道访问的主机,并在实现连接后退出(或删除文件)
答案1
您可以配置服务单元
Type=notify
NotifyAccess=all
并使 OpenVPN 在初始化期间启动的最后一个脚本(或其子脚本)(等待所需的日志输出,然后)调用systemd-notify
.