网站首页 > 基础教程 正文
如果我们Spring Boot服务直接部署在Windows或Linux环境下,如果我们启动或关闭服务,需要频繁手敲命令,很不方便。
此时,我们可以编写启动脚本来对服务进行控制
Windows
启动脚本
startup.bat
@echo off
title Spring Boot Demo
java -jar spring-boot-demo.jar --server.config=application.yml
@pause
关闭脚本
shutdown.bat
@echo off
set port=8090
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do (
echo kill the process %%m who use the port %port%
taskkill /pid %%m -t -f
)
重启脚本
restart.bat
@echo off
call ./shutdown.bat
call ./startup.bat
@pause
或
@echo off
set port=8090
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do (
echo kill the process %%m who use the port
taskkill /pid %%m -t -f
goto start
)
cd %~dp0
start java -jar spring-boot-demo.jar --server.config=application.yml
exit
:start
start java -jar spring-boot-demo.jar --server.config=application.yml
exit
@pause
Linux
启动/重启脚本
startup.sh
startTime=`date +'%Y-%m-%d %H:%M:%S'`
#jar包文件路径
APP_PATH=/home/demo
#jar包文件名称
APP_NAME=$APP_PATH/spring-boot-demo.jar
#日志文件名称
LOG_FILE=$APP_PATH/spring-boot-demo_out.log
rm -rf $LOG_FILE
echo "开始停止服务"
#查询进程,并杀掉当前jar/java程序
pid=`ps -ef|grep $APP_NAME | grep -v grep | awk '{print $2}'`
if [ $pid ];then
echo "pid: $pid"
kill -15 $pid
echo "服务停止成功"
fi
sleep 2
#判断jar包文件是否存在,如果存在启动jar包,并实时查看启动日志
if test -e $APP_NAME;then
echo '文件存在,开始启动服务'
#启动jar包,指向日志文件,2>&1 & 表示打开或指向同一个日志文件
nohup java -jar -Duser.timezone=GMT+08 $APP_NAME --server.config=application.yml > spring-boot-demo_out.log 2>&1 &
echo "服务启动中"
sleep 10s
#通过检测日志来判断
while [ -f $LOG_FILE ]
do
success=`grep "Started SpringBootDemoApplication in " $LOG_FILE`
if [[ "$success" != "" ]]
then
break
else
sleep 1s
fi
#开始检测启动失败标记
fail=`grep "Fail" $LOG_FILE`
if [[ "$fail" != "" ]]
then
echo "服务启动失败"
tail -f $LOG_FILE
break
else
sleep 1s
fi
done
echo "服务启动成功"
endTime=`date +'%Y-%m-%d %H:%M:%S'`
startSecond=$(date --date="$startTime" +%s);
endSecond=$(date --date="$endTime" +%s);
total=$((endSecond-startSecond))
echo "运行时间:"$total"s"
echo "当前时间:"$endTime
else
echo $APP_NAME ' 文件不存在'
fi
关闭脚本
shutdown.sh
#jar包文件名称
APP_NAME=/data/demo/spring-boot-demo.jar
echo "开始停止服务"
#查询进程,并杀掉当前jar/java程序
pid=`ps -ef|grep $APP_NAME | grep -v grep | awk '{print $2}'`
echo "pid: $pid "
if [ $pid ];then
echo "pid: $pid"
kill -15 $pid
echo "服务停止成功"
else
echo "未找到对应服务"
fi
猜你喜欢
- 2024-11-21 Linux 汇编语言开发指南
- 2024-11-21 不小心删除/etc/passwd文件怎么办
- 2024-11-21 Linux | awk 特殊模式“BEGIN 和 END”
- 2024-11-21 Linux 网络编程——libpcap详解
- 2024-11-21 Linux Bash Shell学习之流程控制——if/else
- 2024-11-21 linux如何切换用户
- 2024-11-21 Linux系统常用命令
- 2024-11-21 Linux系统编程-02、进程
- 2024-11-21 Linux命令中特殊符号
- 2024-11-21 一行代码如何隐藏 Linux 进程?
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)