Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Upstart在运行时停止_Linux_Bash_Jenkins_Upstart - Fatal编程技术网

Linux Upstart在运行时停止

Linux Upstart在运行时停止,linux,bash,jenkins,upstart,Linux,Bash,Jenkins,Upstart,我有一个Jenkins任务来停止节点应用程序,部署代码,然后启动应用程序 使用Upstart脚本完成启动/停止 我使用initctl停止节点应用程序 如果作业正在运行,这将非常有效。但如果应用程序已死亡或处于停止状态,则输出为initctl:Unknown instance: 这会导致Jenkins作业失败,无法继续下一步 是否有办法在发出start命令之前检查作业是否已启动?或者,詹金斯有没有办法不认为这是一个错误而失败的工作? < P>一个同事提出了一个很好的解决方案 if ( initct

我有一个Jenkins任务来停止节点应用程序,部署代码,然后启动应用程序

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

我使用
initctl停止节点应用程序

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

这会导致Jenkins作业失败,无法继续下一步


是否有办法在发出start命令之前检查作业是否已启动?或者,詹金斯有没有办法不认为这是一个错误而失败的工作?

< P>一个同事提出了一个很好的解决方案

if ( initctl status node-App | grep start ); then
  initctl stop node-App
fi

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

我使用类似的结构

initctl stop node-App || echo "node-App was not running"

I更简单的语法是
状态节点应用程序| grep开始和停止节点应用程序
@unnu:一行代码会将返回代码保留为非零。我相信这仍然可能导致詹金斯失败。上述解决方案更好,因为它会将返回代码设置为零。@jwfearn一行程序在作业关闭时返回0,在作业未运行时返回1。考虑到这个问题,你的答案是正确的;)