Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.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
Jenkins 如何调用shell脚本来启动后端Java进程?_Jenkins - Fatal编程技术网

Jenkins 如何调用shell脚本来启动后端Java进程?

Jenkins 如何调用shell脚本来启动后端Java进程?,jenkins,Jenkins,在完成Jenkins任务后,我使用Jenkins的post-condition配置部分执行Linux shell脚本 此Linux shell脚本希望在后端启动备用服务,并且不能导致Jenkins暂停 我试图使用“nohup+&”等,但它不起作用 有什么好办法吗?詹金斯可能正在等待一些管道关闭。您的后台进程继承了一些文件描述符,并在运行期间保持这些描述符的打开状态 如果幸运的话,唯一的文件描述符是0、1和2(标准的)。您可能希望使用lsof-p PID检查后台进程的文件描述符,其中PID是后台进

在完成Jenkins任务后,我使用Jenkins的post-condition配置部分执行Linux shell脚本

此Linux shell脚本希望在后端启动备用服务,并且不能导致Jenkins暂停

我试图使用“nohup+&”等,但它不起作用


有什么好办法吗?

詹金斯可能正在等待一些管道关闭。您的后台进程继承了一些文件描述符,并在运行期间保持这些描述符的打开状态

如果幸运的话,唯一的文件描述符是0、1和2(标准的)。您可能希望使用
lsof-p PID
检查后台进程的文件描述符,其中PID是后台进程的进程id

您应该确保所有这些文件描述符(输入和输出)都被重定向到后台进程,因此请从以下内容开始:

nohup daemon </dev/null >/dev/null 2>&1 &
nohup守护程序/dev/null 2>&1&
请随意将输出定向到除
/dev/null
以外的文件,但请确保保持重定向的顺序。订单很重要


如果您计划从Jenkins作业启动后台进程,请注意Jenkins将在构建结束时终止后台进程。请参阅如何防止这种情况。

我在运行Jenkins的shell脚本作为后台进程时遇到了类似的问题。我使用以下命令修复了它:

BUILD_ID=dontKillMe nohup ./start-fitnesse.sh &

请确保stderr也被重定向,即
nohup script.sh 2>&1>/dev/null
您仍然可以澄清问题的具体原因吗?你的意思是直到服务退出,构建才会完成吗?您希望构建完成并让服务在后台运行吗?对于@sti,是的,是的。@sti我有完全相同的问题,我尝试使用“nohup java-jar whatever&”启动后台jar服务,但Jenkins作业在jar退出之前不会退出,这是永远不会发生的,因为它是一个一直运行的后台服务。。。你有解决这个问题的好办法吗?