我有两个 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=