现状:目前放在测试环境的服务太多,内存占用高导致jar包不稳定,运行几十天后会自动挂掉,且无日志提示无法跟踪错误。
首先用命令创建一个sh脚本。
touch restart.sh
vim restart.sh
填入如下,根据需求自己修改对应部分。
#!/bin/bash
source /etc/profile
while true
do
ps -ef | grep "imp_portal_admin_xjf.jar" | grep -v "grep"
if [ "$?" -eq 1 ];then
nohup java -jar imp_portal_admin_xjf.jar &
fi
sleep 60
done
上述shell脚本中,功能为:每60s检查这个jar包,若挂掉,重新用nohup命令再运行。
接下来给脚本授权。
chmod 777 restart.sh
最后将shell脚本在后台运行起来。
nohup ./restart.sh > restart.log &
测试:将jar包kill掉,一定时间后查看restart.log中的日志,有运行jar包服务的相关日志则成功。