1,前提
在使用jenkins自动化部署工具的过程,使用【Publish Over SSH】插件进行构建后的操作。
2,过程
编写【Exec command】命令,步骤【停止服务】-【拷贝jar包到指定位置】-【启动服务】操作流程;
执行【Build Now】(立即构建)时,前面两个步骤正常执行,启动服务总是提示超时失败。
在【控制台输出】可以看到如下错误提示:
【ERROR: Exception when publishing, exception message [Exec timed out or was interrupted after 240,001 ms]】

3,解决办法

在启动服务步骤命令前添加

source /etc/profile

再执行【Build Now】,服务正常启动。

#!/bin/bash
#define
target_addr="/var/****/****"   # 目标服务器服务目录
source_addr="/var/jenkins/workspace/****/target" #jenkins构建服务器,构建包文件夹

# 停止在目标服务器上的服务
echo "停止服务"
cd "$target_addr"
sh stop.sh
echo "OK!"

# 拷贝,将jenkins构建服务器构建的jar,拷贝到目标服务器
echo "拷贝文件"
cp -r "$source_addr"/*****.jar  "$target_addr"/lib
echo "OK!"

echo 'JAVA_HOME is $JAVA_HOME'
echo 'PATH is $PATH'
source /etc/profile

echo "启动服务" 
cd "$target_addr" 
sh start.sh 
echo "OK!"

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐