如何写一个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. 完成!!!!!!!!!!!!!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐