当我systemctl stop service
对停止或失败的服务执行此操作时,它返回 0 并且没有输出。在调用之前我需要知道它是否正在运行。
在停止之前调用systemctl status
不是一种选择:它会增加运行时间并引入竞争条件。这两个原因对我来说都很重要。
答案1
如果用信号终止您的服务TERM
是停止它的适当方法,您可以使用
systemctl kill --fail service
代替
systemctl stop service
如果服务正在运行并被终止,则将以代码 0 退出;如果服务未运行,则以代码 1 退出。