功能: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
入我相思门,知我相思苦,
长相思兮长相忆,短相思兮无穷极,
早知如此绊人心,何如当初莫相识。