如果跑步,则新贵停止

jsm*_*key 8 linux bash upstart jenkins

我有一个Jenkins工作来停止节点应用程序,部署代码并启动应用程序.

使用Upstart脚本完成启动/停止.

我用 initctl stop node-App

如果作业正在运行,这很有效.但是如果应用程序已经死亡或处于停止状态,则输出为initctl: Unknown instance:

这会导致Jenkins作业失败,而不会继续执行后续步骤.

有没有办法在发出启动命令之前检查作业是否已启动?或者詹金斯有没有办法不考虑错误并且失败了?

jsm*_*key 10

一位同事提出了一个很好的解决方案

if ( initctl status node-App | grep start ); then
  initctl stop node-App
fi
Run Code Online (Sandbox Code Playgroud)

从Jenkins运行时非常简单并且工作正常

  • @unnu:你的单行将返回代码保持为非零.我相信这可能仍会导致詹金斯失败.上面的解决方案更好,因为它会将返回码设置为零. (2认同)