我正在运行2个systemd服务- serviceA.service和serviceB. service。在我的场景中,serviceA.service在启动时失败,显示-
Loaded: loaded (/etc/systemd/system/serviceA.service; disabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2023-07-24 15:03:53 UTC; 10min ago ...
字符串
如果serviceA失败,serviceB需要停止。注意:ServiceB是分叉类型,我不应该改变它。
我在我的serviceB.service文件中添加了“After=serviceA.service and Requires=serviceA.service”,但似乎不起作用。我甚至尝试了“BindTo=”关键字,但它也不起作用。我的serviceA.service也有一个“OnFailure=”关键字,但这也没有帮助。我的理论是serviceB的关键字只检查serviceA是否正在运行,而不检查它是否失败或通过。有人能解释一下解决这个问题的最好方法是什么吗?(我对任何涉及自定义脚本或新关键字的解决方案持开放态度)
1条答案
按热度按时间ztigrdn81#
更新:我找到了解决这个问题的方法,将服务的类型改为“one shot”,在serviceA中添加“RemainAdterExit=true”关键字,在serviceB中添加“BindsTo=”关键字(serviceB也有相同的type=forking)