Jenkins构建完成项目后,使用nohup对项目进行后台启动会使项目直接挂掉,可以使用BUILD_ID=dontKillMe
解决
JENKINS_NODE_COOKIE=dontKillMe很重要,pipeline在退出的时候,会默认清理自己发出的每个shell命令,即使使用了nohup
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| #!/bin/bash
# 防止Jenkins部署项目时,使用 nohup 后台启动项目,将进程杀掉 BUILD_ID=dontKillMe
# 防止Jenkins使用Pipline部署项目时,使用 nohup 后台启动项目,将进程杀掉 JENKINS_NODE_COOKIE=dontKillMe
# 开始关闭hugo ./stop.sh # hugo后台启动开始 echo "---------------- hugo后台启动开始 ----------------" nohup hugo server > hugo.log 2>&1 & # 检测hugo是否启动成功 pId=$(ps -ef | grep hugo | grep -v grep | awk '{ print $2 }') # 输出pId echo "---------------- hugo的pId:$pId ----------------" if [ -z $pId ]; then echo "---------------- hugo启动失败 ----------------" nohup hugo server > hugo.log 2>&1 & else echo "---------------- hugo启动成功 ----------------"
|