SpringBoot项目快速启动停止脚本
1.在jar包同级目录下,创建 app.sh
#!/bin/bash appName=`ls|grep .jar$` if [ -z $appName ] then echo "Please check that this script and your jar-package is in the same directory!" exit 1 fi killForceFlag=$2 function start() { count=`ps -ef |grep java|grep $appName|wc -l` if [ $count != 0 ];then echo "Maybe $appName is running, please check it..." else echo "The $appName is starting..." nohup java -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -Xms512M -Xmx4G -jar $appName > /dev/null 2>&1 & fi } function stop() { appId=`ps -ef |grep java|grep $appName|awk '{print $2}'` if [ -z $appId ] then echo "Maybe $appName not running, please check it..." else echo -n "The $appName is stopping..." if [ "$killForceFlag" == "-f" ] then echo "by force" kill -9 $appId else echo kill $appId fi fi } function status() { appId=`ps -ef |grep java|grep $appName|awk '{print $2}'` if [ -z $appId ] then echo -e "\033[31m Not running \033[0m" else echo -e "\033[32m Running [$appId] \033[0m" fi } function restart() { stop for i in {3..1} do echo -n "$i " sleep 1 done echo 0 start } function usage() { echo "Usage: $0 {start|stop|restart|status|stop -f}" echo "Example: $0 start" exit 1 } case $1 in start) start;; stop) stop;; restart) restart;; status) status;; *) usage;; esac
2.使用说明
app.sh脚本为快速启动应用和关闭应用的脚本,使用方法如下:
首先,将你需要发布的jar包,和含有上述内容的脚本app.sh,上传至linux服务器,注意两者必须处于同一目录,并且该目录下只有一个jar包,并给与app.sh相应执行权限,chmod 777 app.sh
然后就可以执行脚本,命令如下
命令 作用
./app.sh start 启动应用
./app.sh stop 关闭应用
./app.sh restart 重启应用
./app.sh status 查看应用状态
./app.sh stop -f 强制kill应用进程
注意,重新发布应用时,先stop再上传替换jar包哦。
脚本中可以修改的地方:
19行:nohup java -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -Xms512M -Xmx4G -jar $appName > /dev/null 2>&1 &
这是最终jar的启动命令,在这里你需要对gc、Xms、Xmx等针对你机器的实际情况修改,还可以添加你所需要的启动参数等。
56行:for i in {3..1}
这里是设置restart的时候等待的时间,因为有的项目在3秒之内可能没有办法正常停止,所以可以调整为5秒,保证应用确实正常停止后再启动