最近在部署jenkins远程发布,发现jenkins在A服务器上,如果链接B服务器并调用B服务器的脚本,启动springboot的jar,会没有响应,先开始的思路是ssh远程连接后启动B服务器脚本,发现没有任何反应,但jenkins内成功,就是jar起不起来,
脚本如下:
|
|
一开始看网上有人说在调用的地方用BUILD_ID=dontKillMe,接着又有人说用daemonize守护线程,还有人说改变BUILD_ID值,也有人说在脚本开始前加上JAVA_OPTS="$JAVA_OPTS -Dhudson.util.ProcessTree.disable=true",更有甚者还干脆来了个合集,一个方法都用不了,简直崩溃(网上的大神都是复制粘贴高手,拜服),最后在一篇帖子内看到:
|
|
然后在命令执行的位置添加下面这行命令:
|
|
注意:source /etc/profile 如果没有,没有错误也不会有java执行的进程
增加 source /etc/profile 后不能直接使用nohup java -jar app.jar & 这时候Jenkins会打印app启动信息
没错,就是他,在脚本最前面加上source /etc/profile,完美一切运行正常!!!!!!!!
原来在一台服务器远程链接另一台服务器的时候,即便是存在BUILD_ID=dontKillMe,必须使用source /etc/profile,使其在B终端内有效,不然默认还是A终端,导致无法正常启动。