本来安装完tomcat觉得jsvc挺好用的,到昨天才发现这东西虽然可以启动tomcat,但是启动tomcat后,与tomcat原生的catalina.sh 启动后,打开网页的效果不一样,jsvc少了些什么东西,导致网页效果出不来。而catalina.sh这个脚本,可以启动tomcat,但是却不能很好的关闭tomcat,主要表现在WEB服务停止后,java进程依然存在。于是乎,自己动手写脚本管理这破东西
1)假如tomcat安装目录是/var/tomcat,首先修改/var/tomcat/bin/catalina.sh
在# OS specific support. $var _must_ be set to either true or false.以上添加下面的代码:
export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.12 //JJDK的安装目录
export JRE_HOME=/usr/lib/jvm/java-6-sun-1.6.0.12 //JRE的目录,与JDK目录相同
export CATALINA_HOME=/var/tomcat //tomcat安装目录
export CATALINA_BASE=/var/tomcat //tomcat安装目录
export CATALINA_TMPDIR=/var/tomcat/temp //tomcat临时目录
export CATALINA_PID=/var/run/tomcat.pid //tomcat的进程文件
添加完后保存
2)配置JDK环境
安装apt-get install sun-java6-jdk
修改/etc/profile,在文件末尾添加以下代码:
export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.12
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
添加完后保存
3)下面是脚本代码,将代码保存在/etc/init.d/下的一个文件中并使用chmod +x 文件名,来让脚本具有执行权限,比如将代码保存在/etc/init.d/tomcat中,使用方法/etc/init.d/tomcat {start|stop|restart}
case “$1″ in
start)
if test -f /var/run/tomcat.pid
then
if test `pgrep -f java | wc -l` -ne 0
then
echo “Tomcat is already running.”
else
echo “Starting Tomcat…”
/var/tomcat/bin/catalina.sh start > /dev/null
fi
else
if test `pgrep -f java | wc -l` -eq 0
then
echo “Starting Tomcat…”
/var/tomcat/bin/catalina.sh start > /dev/null
else
echo “Tomcat is already running or Java is already running”
fi
fi
;;
stop)
if test -f /var/run/tomcat.pid
then
if test `pgrep -f java | wc -l` -ne 0
then
echo “Stopping Tomcat…”
kill -9 `cat /var/run/tomcat.pid`
else
echo “Tomcat isn’t running.”
fi
else
if test `pgrep -f java | wc -l` -eq 0
then
echo “Tomcat isn’t running.”
else
echo “Stopping Tomcat…”
killall -9 java
fi
fi
;;
restart)
if test -f /var/run/tomcat.pid && test `pgrep -f java | wc -l` -eq 0
then
echo “Restart Tomcat…”
/var/tomcat/bin/catalina.sh start > /dev/null
else
killall -9 java
echo “Restart Tomcat…”
/var/tomcat/bin/catalina.sh start > /dev/null
fi
;;
esac
exit 0