linux定时任务之自动启动Tomcat失效问题排查

首先,需要了解一下Linux定时任务的使用,可以参考我写的另一篇文章

https://blog.csdn.net/zxc_user/article/details/80658709

然后就是我今晚自己想写一个脚本来坚持Tomcat是否挂掉,是的话就重启

这是我自己写的脚本

#! /bin/sh

echo $(date) >> /opt/zxc.txt

tomcat=$(ps -ef|grep default-tomcat|grep -v grep)


if [ -n "$tomcat" ]

   then 

     echo tomcat正常运行 >> /opt/zxc.txt
   
  else 

     sh /opt/app/tomcat8/default-tomcat/bin/startup.sh


     echo tomcat 挂掉 >> /opt/zxc.txt

fi
 

大概的意思就是检测Tomcat是否运行,如果不是就启动Tomcat,具体的就不说了,网上也有一大堆

然后在定时任务里面配置了

就是每分钟执行我定制的那个脚本

 然后我自己用  sh zxc.sh  执行这个文件是正常的,可以启动

但是当我放到Linux的crontab 任务中就失效了,看到日记报了一个

mailed 144 bytes of output but got status 0x007f#012

然后百度了好久,没人能说明白这个是什么意思,不过我猜大概就是因为脚本里面出了某些错吧,然后开始找其他原因

是不是我在脚本里面无法再执行其他脚本,然后自己又创建了另外一个脚本,引入发现是可以的,那就是说这种

做法是可以的。。

还看了一篇执行脚本的文章

https://blog.csdn.net/simple_the_best/article/details/76285429

用了里面的方法也都不行,然后又是找了很久,最终发现了一篇文章

https://blog.csdn.net/baidu_19473529/article/details/72864254

在 catalina.sh 中导入了两个变量

export JAVA_HOME=/usr/java/jdk1.7.0_67

export JRE_HOME=$JAVA_HOME/jre

再次执行就可以了。。

其实我并没有配置到catalina.out 但是,配置在了 /etc/profile中, 推测是手工执行的时候可以自动找到这两个变量

所在导致无法正常启动Tomcat,然后顺便测试了一下看看把这两个变量放到脚本中测试行不行

如下

最终发现也是可以的,Tomcat也被启动了,所以问题应该就是在这两个环境变量导致的!!!

不过最好还是在 catalina.sh 中配置比较好

顺便复习了一下 crontab的内容

日志在 /var/log/cron 这个文件里

/etc/init.d/crond restart 重启定时任务

猜你喜欢

转载自blog.csdn.net/zxc_user/article/details/82634370
今日推荐