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