脚本文件重启 Tomcat 手动运行成功,但在 Crontab 上失败

Script file restart Tomcat runs manually success, but fails on Crontab

我是 shell 脚本的新手。 我有一个 Tomcat 服务器构建于:/APP/apache-tomcat-7.0.42

我希望我的 tomcat 每天自动重启一次,所以我写了一个文件 test.sh (/APP/apache-tomcat-7.0.42/test.sh),内容为 :

/APP/apache-tomcat-7.0.42/bin/shutdown.sh && echo "Tomcat was already shutdown"
kill -9 $(lsof -t -i:8080 -sTCP:LISTEN)
/APP/apache-tomcat-7.0.42/bin/startup.sh

然后我在 crontab 上安装:0 9 * * * /APP/apache-tomcat-7.0.42/test.sh

但没有用,虽然我手动尝试 运行,并且成功。

我检查了 crontab : /etc/init.d/crond 状态,它是 运行ning.

不懂,帮帮我!

哦,我重新爱了!

如果您可以通过登录会话手动执行此操作,但不能从 启动或从 cron,我 99% 确定这是因为环境变量像 JAVA_HOME 和 CATALINA_HOME 没有为启动和 cron 环境设置。

您需要获取此会话的信息:

>回显$JAVA_HOME

> JAVA_HOME="/usr/java/jdk1.6.0_41"

>回显$CATALINA_HOME

> CATALINA_HOME="/APP/apache-tomcat-7.0.42"

然后,结果文件crontab:

export PATH="/usr/lib64/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin :/usr/local/sbin:/usr/sbin:/sbin:/home/tomcat/bin"

导出 JAVA_HOME="/usr/java/jdk1.6.0_41"

导出 CATALINA_HOME="/APP/apache-tomcat-7.0.42"

/APP/apache-tomcat-7.0.42/bin/shutdown.sh

kill -9 $(lsof -t -i:8080 -sTCP:LISTEN)

/APP/apache-tomcat-7.0.42/bin/startup.sh