在linux上部署的时候,有时候程序异常了,会导致jar或者tomcat进程自定关闭了,这时候想要它自动重启怎么办。
1.启动jar的shell脚本
#!/bin/bash
#判断查看进程中8080端口是否存在
if [ "$(netstat -tlnp|grep 8080|grep -v grep|wc -l)" == 0 ]
then
#输出
echo "Start"
#删除日志文件
rm -rf /java/logs/10080.log
#后台启动jar
nohup java -jar /java/jar/server/tcp-server-10080.jar > /java/logs/10080.log 2>&1 &
#存在输出已启动
else
echo "it's running..."
fi
2.启动tomcat脚本
原本我们在bin目录下有一个startup.sh脚本可以启动tomcat,但是这个脚本没有办法做到自动重启,怎么办,我们在写一个脚本来包装它。
#!/bin/bash
#判断查看进程中8080端口是否存在
if [ "$(netstat -tlnp|grep 8080|grep -v grep|wc -l)" == 0 ]
then
echo "Start"
#进到tomcat的bin目录下,执行startup.sh脚本
cd /java/apache-tomcat-8.5.40/bin/; sh startup.sh
#存在输出已启动
else
echo "it's running..."
fi
3.定时任务
有了这个脚本还不够,我们还需要把这个脚本加入定时任务里面去。
让它每隔一分钟执行一次,这样他会不停的去执行这个脚本,如果发现进程里面8080端口不存在了,就会执行脚本把服务重新起来。
定时任务命令: crontab -e
按 “”i” 在最后一行插入定时任务
*/1 * * * * /java/startup/8080.sh > /dev/null 2>&1
每隔一分钟执行一次:
执行时间: */1 * * * *
脚本路径: /java/startup/8080.sh
不输出任何终端信息: /dev/null 2>&1
按“ :” ,wq保存退出即可。
脚本下载地址:https://download.youkuaiyun.com/download/xiaochende02/11347562