首页 > 编程语言 > 详细

36行的javaweb服务守护线程

时间:2015-11-20 12:37:29      阅读:179      评论:0      收藏:0      [点我收藏+]

当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

36行的javaweb服务守护线程

原文:http://www.cnblogs.com/kakuroseu/p/4980149.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!