我们经常在linux上进行新的项目部署测试时,会编写一定的脚本文件去方便的操作springboot的jar。本文包含jar包的启动(start.sh)、停止(stop.bat)、重启(restart.bat)常用的三种场景。话不多说直接开始,喜欢点个赞收藏一下。
注:本文章涉及内容为本人项目所用,不存在恶意代码命令。jar名称和日志名称根据项目实际情况进行修改,日志文件会生成到jar包的同目录下。prot端口根据实际情况修改。
start.bat
#!/bin/sh
app_name=test.jar
log_file=test.log
echo ${env}环境启动文件平台jar包:${app_name}
nohup java -jar ${app_name} --server.port=9012 > ${log_file} 2>&1 & tail -f ./${log_file}
stop.bat
#!/bin/sh
# 杀死文件平台进程
app_file=test.jar
log_file=test.log
echo 杀死文件平台进程jar包:${app_file}
cp ${app_file} ./backup/$(date "+%Y-%m-%d_%H:%M:%S")${app_file}
mv ${log_file} ./backup/$(date "+%Y-%m-%d_%H:%M:%S")${log_file}
ps -ef | grep ${app_file} | grep -v grep | awk '{print $2}' | xargs kill -9
restart.bat
#!/bin/bash
# 环境变量
app_file=test.jar
log_file=test.log
echo 将要启动的jar包:${app_file}
pid=`ps -ef |grep "${app_file}" | grep -v grep | awk '{print $2}'`
echo 将要杀死原来的进程$pid
kill -9 $pid
echo "$pid进程终止成功"
#kill -9 `ps -ef |grep "${app_file}" | grep -v grep | awk '{print $2}'`
sleep 2
echo "判断jar包${app_file}文件是否存在,如果存在启动${app_file}包"
if test -e $app_file
then
echo "文件存在,开始以${env}环境启动此程序..."
# 启动jar包,指向日志文件,2>&1 & 表示打开或指向同一个日志文件
nohup java -jar "${app_file}" --server.port=9012 > ${log_file} 2>&1 &
tail -f ${log_file}
#echo "$app_file 启动成功..."
else
echo "$app_file 文件不存在,请检查。"
fi
编写上述三个脚本文件后执行 ./xx.bat命令执行。
执行可能会出现不成功情况,不要慌看我的下篇文章《如何修改linux中的文本格式》。