如果tomcat在linux系统跑一段时间停止,该如何处理

时间:2024-03-07 14:26:30

最近tomcat也是跑一段就挂了,那么我们的处理方式就是写一个tomcat的shell脚本,

目的有两个:一是判断进程id是否存在,存在继续运行,不存在就重新启动。

那么这个计划任务如何写呢、

#!/bin/bash

source /etc/profile
export home=/home/UCMSServer/tomcat/bin
export name=`ps aux  |grep -v grep | grep "/home/UCMSServer/tomcat/conf/logging.properties" |awk \'{print $2}\'`
if [ $name -ge 0 ]
then
       echo "server runing..."
else
       sh $home/startup.sh
fi

到点并输出日志

Jun  5 15:50:01 localhost CROND[8081]: (root) CMD (sh /home/cms.sh)

这样的shell脚本出现的问题:手动可以完成重启tomcat,但是自己运行并不能执行计划任务。

归结:

1、crontab与环境变量的关系
手动能执行但是任务计划不执行,很明显就是crontab并不能识别脚本里面的变量。
2、脚本
脚本中涉及的文件路径最好写全局路径
3、脚本是java应用
脚本执行要用到的java或者其他环境变量时,通过source命令引入环境变量;
如;
#!/bin/bash

source /etc/profile
export home=/home/UCMSServer/tomcat/bin
export name=`ps aux  |grep -v grep | grep "/home/UCMSServer/tomcat/conf/logging.properties" |awk \'{print $2}\'`

4、手动可以但是任务计划不行
当手动执行脚本ok。但是crontab执行单不成功可以在crontab中直接引入环境变量
如;
* 8 * * * . /etc/profile;/bin/sh /home/start.sh