对于root
用户,我为 crontab 配置了 JAVA_HOME 变量,如下所示:
[root@localhost ~]# vim /etc/crontab
_______
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/jdk1.8.0_71/bin
MAILTO=root
JAVA_HOME=/opt/jdk1.8.0_71
_______
我定义了一个由不同用户运行的 cronjob,其名称tomcat
如下:
[tomcat@localhost ~]$ crontab -e
_______
30 10 * * * /opt/tomcat/bin/shutdown.sh >> /opt/tomcat/logs/cron_restart.log 2>&1
32 10 * * * /opt/tomcat/bin/startup.sh >> /opt/tomcat/logs/cron_restart.log 2>&1
_______
该作业正在运行,但我的日志显示以下内容:
[tomcat@localhost ~]$ vim /opt/tomcat/logs/cron_restart.log
______
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program
______
1.) 为什么 crontab 没有获取 JAVA_HOME?
2.) 有哪些可能性可以告诉 crontab JAVA_HOME 在哪里?
我的方法基于此页面中的 CentOs-Docs: https://www.centos.org/docs/5/html/5.2/Deployment_Guide/s2-autotasks-cron-configuring.html
3.) 我可能误读了文档吗?
答案1
我是这样工作的:
在文件中插入以下行/opt/tomcat/bin/setenv.sh
:
export JAVA_HOME="/opt/jdk1.8.0_71"