目前我正在处理这个问题:服务 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 后运行。