实现SpringBoot项目系统自动升级的shell脚本(有说明)

#!/bin/sh
#在界面输出:开始停止服务
echo ‘开始停止服务…’
#查找yhhy/ffmail/setting的进程号,其中-aux表示以用户为主的格式输出所有程序(与终端无关),grep -v "grep"表示过滤掉自己执行的grep,awk '{print $2}'表示打印出查找结果的第二列;另外shell中用$来引用变量的值,但对变量赋值的时候无需使用$符号
pid1=$(ps -aux | grep yhhy/ffmail/setting | grep -v “grep” | awk ‘{print $2}’)

#如果查找到pid则杀死进程;其中[]表示条件测试,[和]两端要和操作数之间有空格,[ -n “$pid1” ]表示如果pid1是非空的返回真

if [ -n “$pid1” ]
then
echo ‘setting 正在运行,停止中…’
#杀死pid1这个进程
kill -9 $pid1
#fi表示当前if程序块结束
fi
echo ‘服务停止完成!’
echo ‘开始同步最新代码…’
#进入到.git
cd ${SRC_HOME}
#将代码强制回退到远程库最新的版本,然后同步代码
git reset --hard
git pull
echo ‘最新代码同步完成!’

echo ‘开始编译服务…’
#进入自己项目的服务下,我这里只写了其中一个服务
echo ‘编译basic…’
cd /home/server/workspace/ffmail/FFMail-Basic/basic
mvn install
echo ‘编译ffmail…’
cd /home/server/workspace/ffmail
mvn install
echo ‘编译完成!’

echo ‘开始启动服务…’
echo ${MAVEN_LIB}
cd /home/server
echo ‘setting…’
#nohup是不挂起的意思,即使当前控制台关闭也不影响进程的运行,命令最后加上 &表示后台运行;
#2>&1表示重定向,将错误信息(2) 重定向到标准输出(&1),而 标准输出 默认是写入到 file 文件中,所以 错误信息(2)、 标准输出 都 写入到 file 文件中
nohup java -Xms256m -Xmx512m -jar ${MAVEN_LIB}/com/yhhy/FFMail/setting/0.0.1-SNAPSHOT/setting-0.0.1-SNAPSHOT.jar2>&1 &
echo ‘服务启动完成’

发布了24 篇原创文章 · 获赞 0 · 访问量 2067

猜你喜欢

转载自blog.csdn.net/Poppy_tester/article/details/103256568