关于springboot项目使用shell脚本重启项目

本文介绍了一种使用Shell脚本来安全重启SpringBoot项目的简便方法。通过编写shell脚本,可以实现查找并杀死指定jar包的进程,再重新启动该进程,同时将日志输出到指定文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于springboot项目使用shell脚本重启项目

前端时间自己写了个springboot项目部署到虚拟机服务器上,使用 java -jar jar包名 进行项目启动。但大家就要问了,那么如何关闭项目呢?springboot是微服务框架,内嵌tomcat服务器。一般情况下是使用ps -ef|grep java查看进程,然后找到自己要结束工程的进程号,在使用 kill -9 进程号 结束掉。但是这样太麻烦了,先不说是否会看错进程号而结束错项目,要是现网环境就糟了。所以就教大家一种安全方便的方法——使用shell脚本。

进入到自己的springboot项目的jar包(建议springboot项目打成jar包部署)同目录下,使用touch start.sh创建一个脚本文件,然后vi start.sh进行编辑,输入i定位到当前位置进入输入模式就可以进行内容编辑了,输入的内容看下面。

请看下面的shell命令:

#!/bin/bash
jarname='demo-0.0.1-SNAPSHOT'
pid=`ps aux | grep $jarname | grep -v grep | awk '{print $2}'`
echo $pid
kill -9 $pid
java -jar $jarname.jar
nohup java -jar /zz/$jarname.jar  >/zz/run.log &

下面对每一行做出详细解释:

#!/bin/bash

这句话一般放在shell脚本的开头,用来定义使用哪种sh解释器来解释脚本。其中,#!是一个特殊的表示符,其后,跟着解释此脚本的shell路径。
bash只是shell的一种,还有很多其它shell,如:sh,csh,ksh,tcsh,…。所以,除第一行外,脚本中所有以“#”开头的行都是注释。

jarname='demo-0.0.1-SNAPSHOT'

这句话类似java中的定义变量,将demo-0.0.1-SNAPSHOT赋值给jarname这个变量,下文可以通过$jarname来调用。

pid=`ps aux | grep $jarname | grep -v grep | awk '{print $2}'`

这句话的作用是查找你项目的运行进程号,$jarname是引用的上面的工程名变量。pid就是你要结束的工程的进程号,所以大家使用这段话可以直接复制。

echo $pid

输出进程号

kill -9 $pid

结束进程

java -jar $jarname.jar

重新启动该项目

nohup java -jar /zz/$jarname.jar  >/zz/run.log &

将项目中的日志输出到/zz/run.log这个目录下的日志文件中,所以看日志直接tail -f run.log就可以了。

好了,介绍完毕了。如有不对或完善的地方欢迎指正交流,谢谢大家。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值