我们正在处理一个(供应商提供的)分布式应用程序,它在多个服务器上运行。这些服务器并不是“平等的”——主服务器必须先启动并运行,然后才能启动辅助服务器。
如何在secondary.service
文件中表达这种依赖性?我想要以下内容:
- 启动时,所有辅助服务器上的辅助服务都会等待主服务在主服务器上即将开始。我知道,这可以通过自定义来实现
ExecStartPre
——但是,在我看来,它确实属于辅助服务部分的After
(or ) 子句。该实用程序具有选项 - 是否有类似的语法用于在文件内引用远程服务?Require
[Unit]
systemctl
--host
.service
- 如果/当主服务关闭时,辅助服务也将全部关闭。
- 一旦主服务恢复,辅助服务也将全部启动。
- 前两个可以基于来自主服务的显式通知,并定期检查其运行状况——以在主服务关闭时捕获情况突然。
是否可以使用 systemd 自己的机制来完成上述任何操作,或者我是否需要在每个辅助服务器上实现自己的单独运行状况监控服务?
我们使用的是 RHEL7,其中 systemd 是一个相当旧的版本 219...另外,如果重要的话,所有提到的服务都运行在systemd --user
——而不是“系统”下。