功能:Linux运行jar包Shell脚本

一、删除jar进程

# 删除指定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进程

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

三、完整的封装

#!/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 @ 2020-09-10 11:35  半月无霜  阅读(263)  评论(0编辑  收藏  举报