自动检测tomcat服务的shell脚本

在实际工作中,需要实时的检测Tomcat服务的状态,并且如果在Tomcat停止时,自动的重启Tomcat服务,以方便我们的应用程序不被中断。

实现思路是使用Linux自带的计划任务,启动一个时间间隔为5分钟的检查服务,这个可以放到 /etc/crontab文件中。

*/5 * * * * su - root -c /root/restartTomcat.sh

接下为就是要实现这个.sh文件,我们可以参考下面的模板。基本思路就是通过PS得出当前的系统进程,然后通过文件的路径来确定指定的进程是否已经启动,如果没有启动,则先执行程序停止服务,再执行启动服务。
示例代码如下:

#!/bin/bash

pnum_server=`ps -wef|grep tomcat |grep -v grep |wc -l`

if test $pnum_server -lt 1

then

  /usr/local/tomcat/bin/shutdown.sh

   sleep 2s

  /usr/local/tomcat/bin/startup.sh

fi

如果这样写你可能会遇到一个小插曲,就是提示fi附近有语法错误。这个问题的原因是由于Windows下面的换行符导致。
因此你可以使用vi打开脚本文件,执行:set fileformat=unix,:wq保存即可。