linux(centos7)下springboot项目jar包使用shell脚本运行
一般情况下springboot项目部署到linux下面需要经过一下几个步骤:
1.查看项目是否在运行状态(常用命令[其中一个]):
1 ps -ef | grep xxx.jar
2.如果项目在运行状态,需要先将现在运行的项目pid杀掉(常用命令[其中之一]):
1 kill -9 xxx
3.然后再检查一下项目运行状态,确认旧项目pid已经被kill掉。
4.将更新的项目jar包放到指定位置,然后使用nohup后台启动boot项目(常用简单启动命令[其中之一]):
1 nohup java -jar xxx.jar> log.log &
5.然后查看指定日志:
1 tail -f log.log
如果开发项目需要频繁的去更新,每次都需要这些操作,就会很麻烦,于是 查阅百度资料 写一个shell脚本去直接执行这些操作:
1.在项目jar包统计目录下使用 vim 命令新建一个 restart.sh 脚本:
1 vim restart.sh
2.按 i 键进入编辑模式:写入以下内容:
1 #!/bin/sh 2 #项目jar包名称 3 APP_NAME=xxx-0.0.1-SNAPSHOT.jar 4 #重启命令 5 pid=`ps -ef | grep $APP_NAME | grep -v grep |awk '{print $2}'` 6 if [ $pid ]; then 7 echo :App is running pid=$pid 8 kill -9 $pid 9 fi 10 nohup java -Xms128m -Xmx256m -jar $APP_NAME> log.log 2>&1 & 11 tail -f log.log
然后 :wq 保存退出.
注释(sh脚本解释):
1.第3行:命名上传至linux服务器的jar包名称;
2.第5行:查询项目jar包pid,将运行目标的线程pid赋值给pid变量;
3.第6,7,8行:判断pid是否运行,如果在运行状态,就kill掉;
4.第10行:启动项目jar包;
5.第11行:打开项目启动日志文件;
完成。
然后在项目jar包部署到服务器上,运行restart.sh就可以运行项目了:
1 sh restart.sh
还有一种根据端口号进行重启项目,供参考:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #!/bin/bash 2 #定义项目jar端口号 3 JAR_PORT=8080 4 #定义项目名称 5 APP_NAME=xxxx.jar 6 #重启命令 7 #根据端口号查询进程pid进行重启 8 pid=$(netstat -nlp | grep $JAR_PORT | awk '{print $7}' | awk -F"/" '{ print $1}'); 9 10 #如果端口被占用则杀死pid进程 11 if [ $pid ]; then 12 echo :App is running pid=$pid 13 kill -9 $pid 14 fi 15 nohup java -jar $APP_NAME> run.log 2>&1 & 16 tail -f run.log
还有一种启动方法就是个脚本加权限:
1 chmod 744 restart.sh
这样就可以使用以下命令启动了:
1 ./restart.sh
当然 上个命令同样也是适用的。