Linux系统上重启Java服务的shell脚本
#!/bin/bash
ids=`ps -ef | grep "XXX-0.0.1-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
echo "Loading……"
java -jar XXX-0.0.1-SHAPSHOT.jar &
echo "已完成启动请查看日志输出"
- 查找Java服务对应的进程号(需要排除掉grep)存储到ids
ps -ef | grep “XXX-0.0.1-SNAPSHOT.jar” | grep -v “grep”
- 杀掉Java服务对应进程
kill -9 $id
- 启动进程
这里根据业务场景,Java服务有日志的,直接启动
java -jar XXX-0.0.1-SHAPSHOT.jar &
Java服务没有日志的,可以nohup,将日志输出到nohup文件中
nohup java -jar XXX-0.0.1-SHAPSHOT.jar &
**&**表示后台启动
具体在Linux系统上创建.sh脚本
vi shart.sh
vim创建.sh文件,按 i 进去到插入模式,编辑文本后,ESC 退出插入模式,按 : 输入指令,wq保存退出,q直接退出。
创建完后的文件暂时还不能运行,需要先赋予权限
chmod 755 shart.sh
755具体是:文件所有者获得 读写执行 权限(7),文件所有者的同用户组其他用户获得 读执行 权限(5),其他用户获得 读执行 权限。
执行权限(1)
写权限(2)
读权限(4)
./start.sh
执行脚本