1 脚本内容
#!/bin/bash
ids=`ps -ef | grep "xxx-1.0-SNAPSHOT.jar" | grep -v "grep" | awk '{print $2}'`
echo "当前服务id:" $ids
for id in $ids
do
kill -9 $id
echo "killed $id"
done
sleep 5s
cd /xxx/xxx
echo "开始启动新进程..."
nohup java -jar -Xms8192m -Xmx8192m xxx-1.0-SNAPSHOT.jar >> /xxx/xxx/xxx.log 2>&1 &
echo "完成启动新的进程..."
2 脚本说明
2.1 查找已启动的java程序
我是根据java服务的名称(xxx-1.0-SNAPSHOT.jar)进行查找的,找到它的进程id
ids=`ps -ef | grep "xxx-1.0-SNAPSHOT.jar" | grep -v "grep" | awk '{print $2}'`
2.2 杀掉进程
循环id集,把进程kill掉
for id in $ids
do
kill -9 $id
echo "killed $id"
done
2.3 休息5秒
给杀掉进程的操作再留一些时间
sleep 5s
2.4 重启java服务
重新后台启动java服务,并将启动日志写入日志文件
nohup java -jar -Xms8192m -Xmx8192m xxx-1.0-SNAPSHOT.jar >> /xxx/xxx/xxx.log 2>&1 &