使用jenkins ssh插件传送编译后的jar包至远程后,执行远程的启动脚本,脚本是执行了,但是其中的nohup java -jar xxx.jar & 始终无法启动,试了在jenkins 中指定BUILD_ID=DotKillMe ,试了在nohup前添加BUILD_ID=DotKillMe ,还有在脚本里添加export BUILD_ID=DotKillMe 都不起作用。最终是在nohup前执行source /etc/profile 解决这个问题,也不需要export BUILD_ID=DotKillMe ,使用这个变量编译总是超时警告,显示编译并不是成功,如果有强迫症的话一定看着很不爽。下面搞一个完整的例子:
#!/bin/bash
pid=`ps -ef | grep "xxx-service-1.0.jar" | grep -v grep | awk '{print $2}'`
if [ "$pid" != "" ];then
echo "already start pid: $pid"
echo "kill first then start"
kill -9 $pid
fi
source /etc/profile
`nohup java -jar /jarpath/xxx-service-1.0.jar ---spring.profiles.active=dev -Dlog.level=debug >/dev/null 2>&1 &`
关键点就在source /etc/profile
完美启动
Jenkins SSH插件下远程启动Java应用的解决办法
博客讲述了在使用Jenkins SSH插件将编译后的jar包部署到远程服务器并尝试通过nohup启动Java应用时遇到的问题。通过在脚本中加入`source /etc/profile`解决了环境变量未生效导致的应用无法启动的问题,同时也提到尝试设置`BUILD_ID=DotKillMe`但导致编译超时。完整示例脚本提供了问题的解决方案。
8987

被折叠的 条评论
为什么被折叠?



