![是否可以通过“After”子句无限期地延迟 systemd 服务?](https://linux22.com/image/786970/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%E2%80%9CAfter%E2%80%9D%E5%AD%90%E5%8F%A5%E6%97%A0%E9%99%90%E6%9C%9F%E5%9C%B0%E5%BB%B6%E8%BF%9F%20systemd%20%E6%9C%8D%E5%8A%A1%EF%BC%9F.png)
目前我正在处理这个问题:服务 1 在另一台机器上。服务 2 在这台机器上,但需要服务 1 可用才能运行。服务 3 在这台机器上,但需要服务 2 才能运行。
我想为服务 2 和服务 3 创建两个自动启动的 systemd 服务。
启动服务 2 的脚本首先检查服务 1 是否可用,如果不可用,它将停留在检查/睡眠循环中,直到找到服务 1。
然后我想补充
After=Service_3.service
一下Service_2.service
或
Before=Service_2.service
Service_3.service
我将Service_2.service
的类型设置为oneshot
那么 systemd 是否会无限期地推迟启动服务 3,直到服务 2 发现服务 1 可用?
顺便说一句:一旦服务 2 关闭,我不需要重新启动它,因为服务 3 是专门为处理它而设计的高可用性程序,但它需要在启动服务 2 后运行。