如果某个其他单元正在运行,则防止 systemd 单元启动

如果某个其他单元正在运行,则防止 systemd 单元启动

我有两个 systemd 服务application.service[email protected]. application.service已启用并且通常正在运行。 [email protected]未启用,只能手动启动,并且有一个Conflicts=application.service条目。

我想实现的是,如果application.service正在运行并且我启动了一个实例[email protected],那么它application service就会终止。由于Conflicts=application.service上述条目,目前该功能正在运行。

然而,数据同步服务会定期application.service通过systemctl restart application.service远程重新启动。当且仅当[email protected]正在运行时,我希望此操作失败。目前这将关闭[email protected]实例并启动application.service。我在systemd的官方文档中找不到与此相关的内容。

背景资料:

我无法让远程服务进行检查,[email protected]因为它只存在于少数机器上(这是一个特殊的配置),并且不是通常基础设施的一部分。我也不想停止该服务,因为它还控制其他可能无法运行的设备[email protected]

答案1

我们有非常相似的问题;我会考虑 这个回应作为解决问题的方法;我也会测试After=Before=使用ExecStartPre=

相关内容