我有一个Jenkins工作来停止节点应用程序,部署代码并启动应用程序。
使用Upstart脚本完成开始/停止。
我使用initctl stop node-App
如果作业正在运行,这很有效。但是,如果应用程序已经死亡或处于停止状态,则输出为initctl: Unknown instance:
这会导致Jenkins作业失败,而不会继续执行后续步骤。
有没有办法在发出启动命令之前检查作业是否已启动?或者,詹金斯是否有办法不考虑错误并使工作失败?
答案 0 :(得分:9)
一位同事提出了一个很好的解决方案
if ( initctl status node-App | grep start ); then
initctl stop node-App
fi
从Jenkins运行时非常简单并且工作正常
答案 1 :(得分:0)
我正在使用类似的结构
initctl stop node-App || echo "node-App was not running"