springboot项目启动、关闭脚本

springboot项目启动、关闭脚本

在jar包目录下新建下面脚本文件

项目启动脚本:start.sh

#!/bin/sh
RESOURCE_NAME=team-system.jar

 
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk {print $2}`
if [ ${tpid} ]; then
echo Stop Process...
kill -15 $tpid
fi
sleep 5
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk {print $2}`
if [ ${tpid} ]; then
echo Kill Process!
kill -9 $tpid
else
echo Stop Success!
fi
 
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk {print $2}`
if [ ${tpid} ]; then
    echo App is running.
else
    echo App is NOT running.
fi
 
rm -f tpid
nohup java -jar ./$RESOURCE_NAME --server.port=9080 &
echo $! > tpid
echo Start Success!

项目关闭脚本:stop.sh

#!/bin/sh
RESOURCE_NAME=team-system.jar
 
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk {print $2}`
if [ ${tpid} ]; then
echo Stop Process...
kill -15 $tpid
fi
sleep 5
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk {print $2}`
if [ ${tpid} ]; then
echo Kill Process!
kill -9 $tpid
else
echo Stop Success!
fi

kill -15和 kill -9 是常用的命令,都可以用来杀死进程。

区别: kill命令默认的信号就是15,也就是 kill -15 ,被称为优雅的退出。

当使用kill -15时,系统会发送一个SIGTERM的信号给对应的程序。当程序接收到该信号后,将会发生以下的事情

    程序立刻停止 当程序释放相应资源后再停止 程序可能仍然继续运行 大部分程序接收到SIGTERM信号后,会先释放自己的资源,然后在停止。但是也有程序可以在接受到信号量后,做一些其他的事情,并且这些事情是可以配置的。如果程序正在等待IO,可能就不会立马做出相应。

查看日志

#查看日志最后300行的代码
tail -n 300 nohup.out 
#查看300行之后的日志 
tail -n +300 nohup.out
#动态实时查询最后300的日志
tail -fn 300 nohup.out
#动态实时查看日志
tail -f nohup.out
经验分享 程序员 微信小程序 职场和发展