shell脚本里执行tomcat startup.sh 无法启动tomcat问题处理-20171012
问题描述:
命令行执行shell脚本,tomcat能正常kill后启动,但是添加到crontab定时执行时,查看执行日志,
Shell脚本确实已经执行但是没有启动tomacat,shell脚本如下:
#!/bin/sh
source /etc/profile
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=axjsms
HOME=/
export BACK_DATE=`date +%Y-%m-%d" "%H:%M:%S`
pid=`ps aux |grep tomcat_9007 |grep -v grep |grep -v retomcat | awk '{print $2}'`
echo $pid
if [ -n "$pid" ]
then
{
echo $BACK_DATE =====kill tomcat ========== >> /home/axjsms/shell/retomcatLog.txt
kill -9 $pid
sleep 3
echo $BACK_DATE =====start tomcat ========== >> /home/axjsms/shell/retomcatLog.txt
/home/axjsms/tomcat_9007/bin/ startup.sh
}
else
echo $BACK_DATE ========= startup.sh
============= >> /home/axjsms/shell/retomcatLog.txt
/home/axjsms/tomcat_9007/bin/ startup.sh
fi
#!/bin/sh
source /etc/profile
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=axjsms
HOME=/
export BACK_DATE=`date +%Y-%m-%d" "%H:%M:%S`
pid=`ps aux |grep tomcat_9007 |grep -v grep |grep -v retomcat | awk '{print $2}'`
echo $pid
if [ -n "$pid" ]
then
{
echo $BACK_DATE =====kill tomcat ========== >> /home/axjsms/shell/retomcatLog.txt
kill -9 $pid
sleep 3
echo $BACK_DATE =====start tomcat ========== >> /home/axjsms/shell/retomcatLog.txt
/home/axjsms/tomcat_9007/bin/ startup.sh
}
else
echo $BACK_DATE ========= startup.sh
============= >> /home/axjsms/shell/retomcatLog.txt
/home/axjsms/tomcat_9007/bin/ startup.sh
fi
问题分析:
tail -f /var/spool/mail/axjsms查看crontab执行日志,看到报错:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined,分析为启动tomcat无法加载java环境JAVA_HOME,导致tomcat无法启动问题处理:
切换到tomcat_9007/bin目录下,vi catalina.sh 添加
export JAVA_HOME=/usr/java/jdk1.8.0_91
export JRE_HOME=/usr/java/jdk1.8.0_91/jre
,环境添加后,执行shell脚本,tomacat正常杀死和启动。