在linux环境中使用jenkins自动部署springboot,进程自动被杀,找了相关资料,原因是Jenkins默认会在Build结束后Kill掉所有的衍生进程。
可以先参照:https://blog.youkuaiyun.com/u011781521/article/details/80210985
我是使用daemonize工具解决此问题的。
1、下载daemonize
git clone git://github.com/bmc/daemonize.git
或git clone http://github.com/bmc/daemonize.git
2、cd daemonize,依次执行如下命令
sh configure
make
sudo make install
3、使用daemonize -v 检查是否安装成功
4、进入到jenkins中,编辑shell脚本
daemonize -E BUILD_ID=dontKillMe ~/opt/douya/startup.sh '${app_name}'
PS:脚本最好是全路径,BUILD_ID可以随意。app_name为项目名
5、startup.sh脚本如下
#!/bin/bash -il
set -x
app_name=$1
cd ~/opt/douya/${app_name}if [ -e /opt/douya/${app_name} ]
then
pid=$(cat "${app_name}.pid")
kill -9 $pid
sleep 15
/opt/douya/${app_name} start
fi
echo 'done'
然后,再重新使用jenkins启动,成功。
PS:每个人出现的问题有可能是不一样的,需要分情况处理,我这只是记录下我的问题 解决方案,如果有其他好的方案,请留言,谢谢。