背景:项目已成功配置在jenkins上,并发送至远程服务器启动,sh deploy.sh $deploy_path(deploy_path为上传的参数)
第一种:deploy.sh(在本路径下启动)
#!/bin/sh
export JAVA_HOME=/opt/tomcat/jdk1.8.0_91
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
cd /opt/app/qajira
ps -ef | grep qajira | grep java |grep -v grep |grep -v server| awk '{print $2}' | xargs -i kill -9 {}
sleep 2
sudo chmod 777 qajira-0.0.1-SNAPSHOT.jar
echo "start qajira-0.0.1-SNAPSHOT.jar port:8018"
BUILD_ID=
#java -jar qajira-1.0.jar &
nohup java -jar qajira-0.0.1-SNAPSHOT.jar > nohup.out &
echo "start done"
~
~
第二种:deploy.sh(将jar包发送至另一个目录下启动)
#!/bin/bash
deploy_path=$1 #jenkins上传的参数
export JAVA_HOME=/opt/tomcat/jdk1.8.0_91
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
sudo rm -rf /opt/tomcat/${deploy_path}/*
echo "删除原jar包:/opt/tomcat/${deploy_path}/*";
echo "***************从jenkins接手到的数据deploy_path的值为:${deploy_path}*************";
scp /home/dev/qajira/*.jar /opt/tomcat/${deploy_path}/
echo "拷贝jar包到指定目录:/opt/tomcat/${deploy_path}/"
sleep 10
killFunction(){
pids=`sudo ps -ef|grep "qajira" | grep -v "deploy.sh" | grep -v "grep" |awk '{print $2}'`
echo "pids: $pids"
for id in $pids
do
sudo kill -9 $id
echo "killed $id"
done
}
echo "停服务ing..."
killFunction
sleep 30
while true;do
count=`ps -ef|grep "qajira" |grep -v "grep"|grep -v deploy.sh |wc -l`
echo "当前进程数:$count"
if [ 0 != $count ];then
echo "进程未kill完全,请稍等..."
killFunction
sleep 5
else
echo "进程kill完成,开始启动项目"
break
fi
done
cd /opt/tomcat/${deploy_path}/
chmod 777 qajira-0.0.1-SNAPSHOT.jar
nohup java -jar qajira-0.0.1-SNAPSHOT.jar > nohup.out &
#nohup java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 -jar qajira-0.0.1-SNAPSHOT.jar &
echo "重启服务完成"
第三种:deploy.sh(将war包发送至另一个目录下启动)
!/bin/bash
deploy_path=$1
deploy_path=$1
export JAVA_HOME=/opt/tomcat/jdk1.8.0_91
rm -rf /opt/tomcat/${deploy_path}/webapps/*
echo "删除原war包:/opt/tomcat/${deploy_path}/webapps/*";
scp /home/dev/financeTestService/*.war /opt/tomcat/${deploy_path}/webapps/
echo "拷贝war包到指定目录:/opt/tomcat/${deploy_path}/webapps/"
sleep 20
killFunction(){
pids=`sudo ps -ef|grep ${deploy_path} | grep -v "deploy.sh" | grep -v "grep" |awk '{print $2}'`
echo "pids: $pids"
for id in $pids
do
sudo kill -9 $id
echo "killed $id"
done
}
echo "停服务ing..."
killFunction
sleep 30
while true;do
count=`ps -ef|grep ${deploy_path} |grep -v "grep"|grep -v deploy.sh |wc -l`
echo "当前进程数:$count"
if [ 0 != $count ];then
echo "进程未kill完全,请稍等..."
killFunction
sleep 5
else
echo "进程kill完成,开始启动项目"
break
fi
done
echo "开始重启服务"
sh /opt/tomcat/${deploy_path}/bin/startup.sh
echo "重启服务完成"
~
~