当javaweb服务不可用时(访问网页时无法正常获取页面),怎样自动重启对应的javaweb服务使其恢复正常?
如果你也遇到上面这种问题,那接下来不妨是一种简便的解决方案,它能够在应用不可用时自动向你保留的邮箱发送邮件进行提示,并尝试杀掉已有的不可用的javaweb应用线程并将其重启。
环境介绍:linux weblogic
#!/bin/sh echo "guard service start" result="" while : do n=0 for b in {1..4}#进行4次尝试,如果4次尝试都失败,则说明当前应用状态不可用 do result=`curl --connect-timeout 1.5 -m 1.5 -o /dev/null -s -w %{http_code} "http://你的javaweb应用的网址"` if [ $result -eq "200" ] then break else let n+=1 continue fi done if [ $n -gt 0 ] then echo "prepare to send email and restart weblogic." TIME=`date ‘+%Y-%m-%d %H:%M:%S‘` result=`sendEmail -f 已经开通SMTP服务的发件的邮箱bcd@bcd.com -t 你的邮箱abc@abc.com -s 发件邮箱的STMP服务器域名比如stmp.sina.com -u "javaweb应用系统发生错误" -xu 发件的邮箱的用户名bcd@bcd.com -xp 发件的邮箱的密码password -m 邮件正文写在这里 $TIME` echo $result echo "send email completed!" result=`ps -ef|grep weblogic.Server|grep -v grep|cut -c 9-15|xargs kill -9`#这里用weblogic举例,其他情况类似 echo $result cd /home/weblogic/Oracle/Middleware/user_projects/domains/abc_domain/ && nohup ./startWebLogic.sh & sleep 240s#给予服务重启时间,再进行下次探测 continue else echo "web server is good,waiting for next loop." sleep 120s#服务正常时探测周期设置为2分钟 continue fi done echo "guard service quit"
上面的36行shell脚本就能实现linux下对指定javaweb服务进行服务可用性守护的功能,当发现服务不可用时,发送邮件告诉管理员并尝试挽救服务。
当然,想要发送邮件,你的linux服务器还需要具有某些特质,比如这篇文章里说的这个东西,你要安装。。。
http://blog.csdn.net/zhuying_linux/article/details/7091688
原文:http://www.cnblogs.com/kakuroseu/p/4980149.html