半月无霜の博客

功能:Linux运行jar包Shell脚本

Toretto·2020-09-10 11:35·272 次阅读

功能:Linux运行jar包Shell脚本

一、删除jar进程#

Copy
# 删除指定jar的进程
ps -ef | grep java | grep testJar.1.0.1 | grep -v grep | cut -c 9-15 | xargs kill -9
  • ps 查找进程
  • grep 查找有关键字的进程
  • grep -v 移除关键字的进程
  • cut -c 9-15 截取9-15的字符,当前正好是进程的pid
  • xargs kill -9 将前面的结果当做kill -9的参数

二、删除jar进程#

Copy
port=8026
pid=$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }');
if [ -n "$pid" ]; then
kill -9 $pid;
fi

三、完整的封装#

Copy
#!/bin/bash
#jar包文件路径及名称(目录按照各自配置)
APP_NAME=/home/web/test-1.0.0.jar
#日志文件路径及名称(目录按照各自配置)
LOG_FILE=/home/web/nohup.out
#查询进程,并杀掉当前jar/java程序
pid=`ps -ef|grep $APP_NAME | grep -v grep | awk '{print $2}'`
kill -9 $pid
echo "$pid进程终止成功"
sleep 2
#判断jar包文件是否存在,如果存在启动jar包,并时时查看启动日志
if test -e $APP_NAME
then
echo '文件存在,开始启动此程序...'
# 启动jar包,指向日志文件,2>&1 & 表示打开或指向同一个日志文件
nohup java -jar $APP_NAME --spring.profiles.active=prod > $LOG_FILE 2>&1 &
#实时查看启动日志(此处正在想办法启动成功后退出)
tail -f $LOG_FILE
#输出启动成功(上面的查看日志没有退出,所以执行不了,可以去掉)
echo '$APP_NAME 启动成功...'
else
echo '$APP_NAME 文件不存在,请检查。'
fi
posted @   半月无霜  阅读(272)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示
目录