shell脚本启动spring boot项目

Spring Boot项目启动

我们知道打包好的Spring Boot项目这样启动

java -jar -Dfile.encoding=utf-8 test-0.0.1-SNAPSHOT.jar

在linux中,常常使用nohup后台启动其他程序,Spring Boot项目使用nohup启动如下

nohup java -jar -Dfile.encoding=utf-8 test-0.0.1-SNAPSHOT.jar &

如果使用上面命令启动,注意这时候远程terminal要主动exit退出,不这样做系统可能会杀掉上面启动的进程

由于开发需要,需要频繁地更新项目,写了两个shell脚本启动和关闭项目

  • 启动项目脚本 start.sh
#!/bin/bash
cd project  # ccd2002-0.0.1-SNAPSHOT.jar所在目录
sudo java -Xms128m -Xmx256m -jar -Dfile.encoding=utf-8 ccd2002-0.0.1-SNAPSHOT.jar &

为什么要加sudo?在没加sudo的情况下,项目会被系统莫名杀掉,估计是由于内存占用原因,不知道如果使用nohup可不可以去掉sudo

  • 关闭项目脚本
#!/bin/bash
sudo kill $(ps -aux | grep 'ccd2002' | awk 'NR==2{print $2}')

上面脚本使用ps命令查到ccd2002项目的信息,然后使用awk过滤信息获取项目pid,最后使用kill杀掉项目。为了方便大家理解,下面分解 sudo kill $(ps -aux | grep 'ccd2002' | awk 'NR==2{print $2}')
ps -aux | grep 'ccd2002'命令执行结果截图如下
这里写图片描述
ps -aux | grep 'test' | awk 'NR==2{print $2}'命令取出上图中指出的pid
这里写图片描述
awk命令对ps结果进行处理,awk 'NR==2{print $2}'中的NR=2表示ps结果的第二行,$2表示行中的第二个元素

猜你喜欢

转载自blog.csdn.net/ihtczte/article/details/82715256