首先,需要了解一下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
elsesh /opt/app/tomcat8/default-tomcat/bin/startup.sh
echo tomcat 挂掉 >> /opt/zxc.txtfi
大概的意思就是检测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 重启定时任务