tomcat守护进程
本文作为总结记录使用,如若有错误,欢迎大家指出。谢谢!经常听大家谈及到java虚拟机,可何为java虚拟机呢,来听我慢慢道来,持续更新。。。jvm相信大家都知道,...
·
如何写一个linux系统下的tomcat守护进程呢?
上菜!!!!!!!!!!
1. 编写守护进程shell脚本
下面这个脚本可以直接拿过来用,只需要改URL 和 tomcat启动目录即可
#!/bin/bash
echo "Start"
URL="http://127.0.0.1:8080/a/login"
curlit()
{
#echo "??"
curl --connect-timeout 15 --max-time 20 --head --silent "$URL" -X POST | grep '200'
# 上面的15是连接超时时间,若访问localhost的HTTP服务超过15s仍然没有正确响应200头代码,则判断为无法访问。
}
echo "oooooooooooooooooooooooooooooooooooooooooo"
doit()
{
echo "pppppppppppppppppppppppppppppppppppppppppppppp"
if ! curlit; then
# 如果localhost的apache服务没有正常返回200头,即出现异常。执行下述命令:
# echo "TD"
sleep 20
echo "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq"
#top -n 1 -b >> /var/log/log.log
kill `ps -ef|grep java|grep -v grep |awk '{print $2}'` > /dev/null 2>&1
echo "ggggggggggggggggggggggggggggggggggggggggggggg"
# 这条语句中ps -ef|grep java|grep -v grep为查询进程中java进程同时排除本身语句,用awk找到第二列信息,返回状态扔到黑洞中。
sleep 2
sh /alidata/server/tomcat7/bin/startup.sh
#echo "EN"
echo $(date) “Tomcat Restart” >> /var/log/log.log
# 写入日志
sleep 60
# 重启完成后等待,然后再次尝试一次
if ! curlit; then
# 如果仍然无法访问,则:
echo "@"
echo $(date) “Failed!” >> /var/log/log.log
# 写入apache依然重启失效的日志
fi
sleep 180
fi
}
sleep 3
# 运行脚本后才开始正式工作(防止重启服务器后由于tomcat还没开始启动造成误判)
# 主循环体
doit
2. 将linux登录用户修改为root(如果已经是root用户,直接跳过)
[javadev@iZwz945r7dz94wZ ~]$ su root
Password: xxxxxxx
3. 修改linux定时任务crontab
命令:crontab -e
里面包含的就是corn表达式,意思就是:多久执行一次 什么样的指令
[root@iZwz945ch694wZ javadev]# crontab -e
0 2 * * * /home/javadev/.git/kworkers
*/1 * * * * /etc/jb/tomcat-de.sh
4. 重启crontab,让定时任务生效
service crond status : 查询crontab启用状态
service crond stop : 关闭crontab任务
service crond start : 启动crontab任务
service crond restart : 重启crontab任务
5. 完成!!!!!!!!!!!!!
更多推荐
已为社区贡献3条内容
所有评论(0)