发布时间:2023-01-16 19:30
目录
一、问题描述
二、分析原因
在使用Publish Over SSH进行远程部署项目时一直报如下错:ERROR: Exception when publishing, exception message [Exec timed out or was interrupted after 120,001 ms]
1、日志分析显示超时,于是修改时间,将120000 修改为300000,然后再修改为600000,都没能解决问题,于是排除不是这个问题
2、网上搜索,说是jenkins 启动时候杀掉了build之外的进程,需要在脚本文件加上这句BUILD_ID=dontKillMe,加上之后还是不行。daemon守护线程。还是不行。
3、有人说是空间不足,于是执行如下命令 清除了一下缓存,还是不行
sync
echo 3 > /proc/sys/vm/drop_caches
4、后来在服务器手动启动脚本,发现了问题的所在,最后一行,日志输出那行
原始脚本
#!/bin/bash
source /etc/profile
project=test-wechat-1.0-SNAPSHOT.jar
dir=/opt/deploy/wechat
echo "prepare to deploy test-wechat-1.0-SNAPSHOT"
pid=`ps -ef |grep test-wechat-1.0-SNAPSHOT |grep -v grep| grep 'java' |awk '{print $2}'`
if [[ $pid ]]; then
echo "test-wechat-1.0-SNAPSHOT is running and pid is $pid"
kill -9 $pid
if [[ $? -eq 0 ]];then
echo "sucess to stop test-wechat-1.0-SNAPSHOT"
else
echo "fail to stop test-wechat-1.0-SNAPSHOT"
fi
fi
echo "start to deploy test-wechat-1.0-SNAPSHOT"
cd /opt/deploy/wechat/
nohup java -jar /opt/deploy/wechat/test-wechat-1.0-SNAPSHOT.jar --server.port=9003 >/dev/null 2>&1 &
发现启动之后一直卡在页面,虽然是后台启动但是并没有出现后台启动的效果
修改脚本内容如下后,问题解决。
#!/bin/bash
source /etc/profile
project=test-wechat-1.0-SNAPSHOT.jar
dir=/opt/deploy/wechat
echo "prepare to deploy test-wechat-1.0-SNAPSHOT"
pid=`ps -ef |grep test-wechat-1.0-SNAPSHOT |grep -v grep| grep 'java' |awk '{print $2}'`
if [[ $pid ]]; then
echo "test-wechat-1.0-SNAPSHOT is running and pid is $pid"
kill -9 $pid
if [[ $? -eq 0 ]];then
echo "sucess to stop test-wechat-1.0-SNAPSHOT"
else
echo "fail to stop test-wechat-1.0-SNAPSHOT"
fi
fi
echo "start to deploy test-wechat-1.0-SNAPSHOT"
cd /opt/deploy/wechat/
nohup java -jar /opt/deploy/wechat/test-wechat-1.0-SNAPSHOT.jar --server.port=9003 > nohup.out 2>&1 &
在jenkins配置,一定要添加nohup ,不然项目启动失败
然后研究了一下日志输出的指令,来源 https://blog.csdn.net/sunrier/article/details/7695839
不过也还是不太明白为什么没有以后台的方式启动,希望大佬可以一起讨论一下