我的服务器里运行了tomcat,时不时tomcat的进程会突然结束掉,不知道为什么,从日志上看也没有任何可疑之处,貌似就这样突然没了,接下来的日志都是重新启动tomcat之后打印的了。原因找不到,但要找变通方法,不要出了问题后总要上服务器去自己重启tomcat。我打算利用系统的cron服务来自动启动tomcat,很简单,大约1分钟检查一次tomcat的进程,如果没有,就启动之,脚本如下:
#!/bin/bash
export JRE_HOME=/usr/local/jre
if [ `ps -ef | egrep 'tomcat' | egrep -v egrep | wc -l` -gt 0 ]; then
exit 1
fi
echo `date`" tomcat restart" >> ~/shell/tomcat_restart.log
/usr/local/tomcat/bin/startup.sh
写这个脚本的时候千万注意:空格不要乱加!shell编程和别的编程不太一样,空格有特殊含义。脚本在启动tomcat的时候,会打印一个log,到~/shell/tomcat_restart.log中,其中包括了一个时间信息,方便我去查找原因(虽然我现在还是找不到原因)。
接下来就是配置crontab。
$crontab -e
然后编辑内容为(假如你的shell文件保存在~/shell/check_and_start_server.sh):
* * * * * ~/shell/check_and_start_server.sh
保存并退出crontab的编辑,然后启动cron服务:
/etc/init.d/crond start
这样一来,每一分钟,cron服务就会执行一次检查。启动tomcat大约需要10秒钟,所以最坏的情况是你的服务器可能会中断1分钟多一点的时间(考虑服务器是在14:20:01秒退出的,cron服务刚检查过,下次检查是14:21:00,这时候启动tomcat,大约到14:21:10这样启动完成)。
ppt.cc/fLOuCx gg.gg/13nbnz gg.gg/13p5tj gg.gg/13p9s5 gg.gg/13tljl gg.gg/13xudz gg.gg/13xy3p gg.gg/143tqc linux.die.net linux.it.net.cn ostechnix.com unix.com gg.gg/19yv96 gg.gg/1bv5v3 man.linuxde.net gg.gg/148erg bit.ly/2EzoUDo gg.gg/1c3of3 bit.ly/2v6jGJi bit.ly/2tW6eYT gg.gg/1bzayz gg.gg/1bzazg bit.ly/2X6vadl bit.ly/2viLpHU linuxprobe.com linuxtechi.com systutorials.com ghacks.net linuxopsys.com reurl.cc/8W1x3X reurl.cc/NpzMWe reurl.cc/WrgYdx reurl.cc/Yv4Yvo reurl.cc/Lmy90K reurl.cc/Rr5aeG
Total Pageviews
Tuesday 15 October 2024
一个自动启动某程序的脚本
Labels:
linux
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment