在开发部署中,Spring Boot应用的启停一般是:
1)运行Spring Boot的应用主类
2)使用Maven的Spring Boot插件 mvn spring-boot:run 来运行
3)打成jar包后,使用java -jar 运行
前两种方式,经常用在开发过程中,而在实际部署的时候,我们往往会使用第三种,但是实际第三种在部署的时候,要用nohup,比方说我们已经打包好了zhm-fast.jar的包,我们现在可以这样启动:
不分配内存指定编码启动:
nohup java -jar -Dfile.encoding=utf-8 zhm-fast.jar >/dev/null 2>&1 &
分配内存指定编码启动:
nohup java -Xms1024m -Xmx2048m –jar -Dfile.encoding=utf-8 zhm-fast.jar >/dev/null 2>&1 &
不分配内存不指定编码启动:
nohup java -jar zhm-fast.jar > ybt.log &
我们用ps查看一下进程,发现zhm-fast.jar已启动,那我们先写一个停止服务脚本,touch stop.sh,用vi打开,输入以下内容:
#!/bin/bash
PID=$(ps -ef | grep zhm-fast.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
echo Application is already stopped
else
echo kill $PID
kill $PID
fi
授权执行操作,启动stop.sh脚本,可发现进程已经停止,我们建立start.sh,输入:
#!/bin/bash
nohup java -jar -Dfile.encoding=utf-8 zhm-fast.jar >/dev/null 2>&1 &
最后,我们可以整合关闭和启动脚本(先执行关闭再启动应用,不会造成端口冲突),用于测试或者生产环境部署新版本,touch run.sh,输入:
#!/bin/bash
echo stop application
source stop.sh
echo start application
source start.sh