百度搜索了很长时间,很多种说法,但是都没说太明白,整合了很长时间,测出来了解决方法,仅测试了自由风格项目和流水线项目,其他的选项未测试,jenkins版本2.400。
以下为正文:
执行脚本时,因为jenkins会在构建结束时,将shell运行期间产生的进程全部关闭,所以nohup启动项目会被自动关闭
解决方法:
1、freestyle project :
选择新建自由风格的项目时,Build Steps选择Execute shell,命令行为:
cd xxx
sh xxx.sh
脚本里面需添加:
#!/bin/bash
#添加这个命令:export BUILD_ID=DongKillMe
#jenkins根据BUILD_ID自动关闭shell运行期间产生的进程,修改变量值,值的内容自定义,防止nohup被关闭
export BUILD_ID=DongKillMe
nohup java -Xms1024m -Xmx1024m -XX:MaxNewSize=512m -jar /xxx/xxx/xxx/xxx.jar >/dev/null 2>&1 &
2、新建流水线项目
脚本里面需添加:
#!/bin/bash
# 添加这两行
source /etc/profile
export JENKINS_NODE_COOKIE=dontKillMe
nohup java -Xms1024m -Xmx1024m -XX:MaxNewSize=512m -jar /xxx/xxx/xxx/xxxx.jar >/dev/null 2>&1 &
Pipeline script里面的内容有一处改动:
pipeline {
agent any
stages {
stage('部署程序') {
steps {
sh '''
#!/bin/bash
cd /xxx/xxx/xxx
#改动的地方:sh执行脚本改为bash,ubuntu系统会提示source:command not found,centos/redhat可以不修改
bash restart.sh
'''
echo '部署完成'
}
}
}
}文章来源:https://www.toymoban.com/news/detail-715107.html
文章来源地址https://www.toymoban.com/news/detail-715107.html
到了这里,关于jenkins使用shell脚本自动部署java项目,nohup启动不成功的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!