如何通过Jenkins以独立进程运行Jar包?nohup使用后仍未解决
解决Jenkins流水线启动Jar后构建无限执行的问题
你当前的命令仅使用了nohup,但缺少后台运行标记与输出重定向两个关键操作,导致Jenkins的sh步骤一直阻塞等待命令结束,且进程和当前shell绑定,停止构建时进程也会被终止。
修改后的流水线代码如下:
stage('Start bot') { steps { sh 'nohup java -jar /home/oomnpe/workspace/oomnpe_bot/target/oomnpe_bot-1.0-jar-with-dependencies.jar > /dev/null 2>&1 &' } }
关键改动说明:
&:将命令放到后台运行,让当前shell无需等待命令执行完成即可继续后续流程> /dev/null 2>&1:将标准输出和错误输出都重定向到/dev/null(丢弃输出),避免Jenkins持续监听输出流导致构建阻塞。如果需要保留应用日志,可以替换为指定文件路径,比如> /var/log/oomnpe_bot.log 2>&1
修改后,Jar进程会脱离Jenkins的当前shell,在远程机器后台独立运行,Jenkins构建会正常结束,且停止构建不会影响Jar进程的运行。
内容的提问来源于stack exchange,提问作者Василий Иванов
相关产品推荐
相关产品推荐

