I'm newbie to shell scripting.
I have a Tomcat server build on : /APP/apache-tomcat-7.0.42
I want my tomcat automatic restart one time per day, so I write a file test.sh
(/APP/apache-tomcat-7.0.42/test.sh
) with content :
/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
And I install on crontab: 0 9 * * * /APP/apache-tomcat-7.0.42/test.sh
But not working, although I try run manually, and success.
I checked crontab : /etc/init.d/crond
status, it is running.
I dont understand, help me!
Oh, I resloved!
If you can do it manually, from a log in session, but not automatically from startup or from cron, I'm 99% sure it's because environment variables like JAVA_HOME and CATALINA_HOME are not being set for the startup and cron environments.
You need get info in this session:
> echo $JAVA_HOME
> JAVA_HOME="/usr/java/jdk1.6.0_41"
> echo $CATALINA_HOME
> CATALINA_HOME="/APP/apache-tomcat-7.0.42"
Then, Result file 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"
export JAVA_HOME="/usr/java/jdk1.6.0_41"
export 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