纯shell自动化部署
根据jar包名提取进程id
ps -ef | grep -w hello-world-0.0.1-SNAPSHOT.jar | grep -v grep | awk ‘{print $2}’
grep -w是精准匹配关键词的意思
grep -v是排除匹配的记录
awk是对每行记录以空格作分隔符去进行切割提取,默认从1开始
部署springboot项目
新建restart.sh
#!/bin/bash
JAR_NAME=hello-world-0.0.1-SNAPSHOT.jar
export name=develop_str
rm -rf ~/lmj/module-workspace/
mkdir -p ~/lmj/module-workspace/
cd ~/lmj/module-workspace/
git clone -b develop https://gituser:gitpassword@gitee.com/goodshred/ansible-jenkins-git-demo.git
cd ansible-jenkins-git-demo/
mvn -Dmaven.test.failure.ignore=true clean package
ps -ef | grep -w ${JAR_NAME} | grep -v grep | awk '{print $2}'
proc_id=`ps -ef|grep -w ${JAR_NAME}|grep -v grep|awk '{print $2}'`
proc_msg=`ps -ef|grep -w ${JAR_NAME}|grep -v grep|awk '{print $8 $9 $10}'`
if [ -n proc_id ]; then
kill -9 ${proc_id}
echo ${proc_id} ${proc_msg}
fi
JAVA_OPTS="-Xmx512m -Xms512m"
echo "nohup java ${JAVA_OPTS} -Dspring.profiles.active=develop -jar target/${JAR_NAME} &"
nohup java ${JAVA_OPTS} -Dspring.profiles.active=develop -jar target/${JAR_NAME} &