首先让我来描述我的问题。 我配置了Jenkins,在构建操作后,我调用了shell脚本在远程服务器上运行bash脚本。 shell脚本通过命令
启动应用程序java -Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=xxx
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-XX:+HeapDumpOnOutOfMemoryError -jar name.jar "BUILD_PARAMETER"
我在Jenkins构建中看到来自我的应用程序的日志,并且它保持构建过程正在运行。我需要在跑步后完成它 sh run命令。有可能吗?
答案 0 :(得分:1)
如果您使用Jenkins进行此操作,则需要在注释中使用nohup表示法,并为进程指定非数字PID。 Jenkins尝试通过杀死它开始的任何进程来完成工作后进行清理。
BUILD_ID = dontKillMe nohup< -your command - > &安培;
以上命令应该可以正常工作
https://wiki.jenkins-ci.org/display/JENKINS/Spawning+processes+from+build
答案 1 :(得分:0)
你的shell脚本需要派生一个进程,然后返回,否则Jenkins认为你的shell脚本仍然在运行(如果它不是分支进程并返回的话,那就是它。)
您尚未提供用于启动应用程序的命令,但在Linux中分叉进程的常用方法是:
nohup <your command here> &