远程(jenkins)调用shell 不能正常结束
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了远程(jenkins)调用shell 不能正常结束相关的知识,希望对你有一定的参考价值。
参考技术A Linux正常后台启动可以使用nohup加&符号。例如:nohup java -jar start.jar >log.log 2>&1 &。
但是在jenkins远程调用,会把日志打印在jenkins控制台中,导致任务不能结束。
通过排查,在程序运行前使用了cd命令,先cd到目录,在运行命令
cd /service && nohup java -jar start.jar >log.log 2>&1 &
改为绝对路径,去掉cd命令,程序正常了
脚本如下:
#!/bin/bash
set -x
kill -9 `ps -ef |grep start|grep -v grep|awk -F " " 'print$2'`
source /etc/profile
nohup java -jar /service/start.jar -Xms500m -Xmx500m -Xmn250m -Xss256k -server -XX:+HeapDumpOnOutOfMemoryError > /service/Log.log 2>&1 &
echo "starting service..."
sleep 10
#根据重启后是否有当前应用判断启动是否成功
pid=$(ps -ef |grep start|grep -v grep|awk -F " " 'print$2')
#echo $pid
if [ -z $pid ];then
echo "启动失败"
exit 1
else
echo $pid "SUCCESS"
fi
以上是关于远程(jenkins)调用shell 不能正常结束的主要内容,如果未能解决你的问题,请参考以下文章