百度搜索了很長時(shí)間,很多種說法,但是都沒說太明白,整合了很長時(shí)間,測出來了解決方法,僅測試了自由風(fēng)格項(xiàng)目和流水線項(xiàng)目,其他的選項(xiàng)未測試,jenkins版本2.400。
?
以下為正文:
執(zhí)行腳本時(shí),因?yàn)閖enkins會(huì)在構(gòu)建結(jié)束時(shí),將shell運(yùn)行期間產(chǎn)生的進(jìn)程全部關(guān)閉,所以nohup啟動(dòng)項(xiàng)目會(huì)被自動(dòng)關(guān)閉
解決方法:
1、freestyle project :
選擇新建自由風(fēng)格的項(xiàng)目時(shí),Build Steps選擇Execute shell,命令行為:
cd xxx
sh xxx.sh
腳本里面需添加:
#!/bin/bash
#添加這個(gè)命令:export BUILD_ID=DongKillMe
#jenkins根據(jù)BUILD_ID自動(dòng)關(guān)閉shell運(yùn)行期間產(chǎn)生的進(jìn)程,修改變量值,值的內(nèi)容自定義,防止nohup被關(guān)閉
export BUILD_ID=DongKillMe
nohup java -Xms1024m -Xmx1024m -XX:MaxNewSize=512m -jar /xxx/xxx/xxx/xxx.jar >/dev/null 2>&1 &
2、新建流水線項(xiàng)目
腳本里面需添加:
#!/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里面的內(nèi)容有一處改動(dòng):
pipeline {
? ? agent any
?
? ? stages {
? ? ? ? stage('部署程序') {
? ? ? ? ? ? steps {
? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? sh '''
? ? ? ? ? ? ? ? ? ?#!/bin/bash
? ? ? ? ? ? ? ? ? ?cd /xxx/xxx/xxx
? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ?#改動(dòng)的地方:sh執(zhí)行腳本改為bash,ubuntu系統(tǒng)會(huì)提示source:command not found,centos/redhat可以不修改
? ? ? ? ? ? ? ? ? ?bash restart.sh
? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? '''
? ? ? ? ? ? ? ? echo '部署完成'
? ? ? ? ? ? }
? ? ? ? }
? ? ? ??
? ? }
? ??
}文章來源:http://www.zghlxwxcb.cn/news/detail-715107.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-715107.html
到了這里,關(guān)于jenkins使用shell腳本自動(dòng)部署java項(xiàng)目,nohup啟動(dòng)不成功的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!