jenkins 控制台一直输出,不返回结果。
解决方案:
在linux环境中启动一个程序想放入后台正常做法是使用nohup加&符号。
但是这样的命令放到shell脚本里,然后通过jenkins去发布的话会把输出日志打印到jenkins的output里,导致任务不能结束。
这时需要重新在命令后面加上重定向如:nohup java -jar test.jar >start.log 2>&1 &
这时又会有新的问题,不管是否正常jenkins都提示成功。解决办法:
增加shell脚本,在脚本里进行判断程序启动是否正常(正常退出exit 0,异常情况下使用exit 1退出)。
sleep 60
command=`netstat -an | grep LISTEN | grep :8088`
if [ "$command" == "" ]
then
exit 1
else
exit 0
fi
PS:8088是我的程序端口