Eu trabalhei assim:
Insira a seguinte linha no arquivo /opt/tomcat/bin/setenv.sh
:% export JAVA_HOME="/opt/jdk1.8.0_71"
Com o usuário root
eu configurei a variável JAVA_HOME para o crontab assim:
[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
_______
Eu defini um cronjob executado por um usuário diferente chamado tomcat
assim:
[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
_______
O trabalho é executado, mas meu log diz o seguinte:
[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.) Por que o crontab não está pegando o JAVA_HOME?
2.) Quais possibilidades existem para dizer ao crontab onde está o JAVA_HOME?
Minha abordagem é baseada nos documentos CentOs desta página: link
3.) É possível que eu tenha lido mal os documentos?