最近在SlackWare下进行JAVA的学习。每次都要手工起动Tomcat,很不方便。于是照猫画虎写了一个脚本开机时自动运行Tomcat。
使用JDK1.5.6,安装在/app/jdk1.5.0_06目录下面,Tomcat是5.5的ZIP版本。
#!/bin/sh
#
# /etc/rc.d/rc.tomcat
#
# Start/stop/restart the Tomcat server.
#
tomcat_start() {
if [ -x /app/tomcat5.5/bin/startup.sh ]; then
echo "Starting Tomcat: /app/tomcat5.5/bin/startup.sh"
/app/tomcat5.5/bin/startup.sh
fi
}
tomcat_stop() {
if [ -x /app/tomcat5.5/bin/startup.sh ]; then
echo "Stop Tomcat: /app/tomcat5.5/bin/shutdown.sh"
/app/tomcat5.5/bin/shutdown.sh
fi
}
tomcat_restart() {
tomcat_stop
sleep 2
tomcat_start
}
case "$1" in
'start')
tomcat_start
;;
'stop')
tomcat_stop
;;
'restart')
tomcat_restart
;;
*)
tomcat_start
esac
|
脚本存放路径/etc/rc.d/rc.tomcat。注意要赋予执行权限。
再在/etc/rc.d/rc.local文件中加上一句:/etc/rc.d/rc.tomcat这样每次起动时就会执行rc.tomcat文件。
起动时却出现问题是:

以往我们的JAVA路径信息是写在/etc/profile里的,如:
JAVA_HOME=/app/jdk1.5.0_06
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
PATH=.:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export JAVA_HOME CLASSPATH PATH
|
用户要登陆后才路径信息才能生效,于是就出现了手工可以起动Tomcat,但随机起动会出现问题。
修改一下rc.tomcat的指动脚本,为它指定JDK路径就可以了。
#!/bin/sh
#
# /etc/rc.d/rc.tomcat
#
# Start/stop/restart the Tomcat server.
#
JAVA_HOME=/app/jdk1.5.0_06
export JAVA_HOME
tomcat_start() {
if [ -x /app/tomcat5.5/bin/startup.sh ]; then
echo "Starting Tomcat: /app/tomcat5.5/bin/startup.sh"
/app/tomcat5.5/bin/startup.sh
fi
}
tomcat_stop() {
if [ -x /app/tomcat5.5/bin/startup.sh ]; then
echo "Stop Tomcat: /app/tomcat5.5/bin/shutdown.sh"
/app/tomcat5.5/bin/shutdown.sh
fi
}
tomcat_restart() {
tomcat_stop
sleep 2
tomcat_start
}
case "$1" in
'start')
tomcat_start
;;
'stop')
tomcat_stop
;;
'restart')
tomcat_restart
;;
*)
tomcat_start
esac
|
很简单,只是在脚本最开始前加了二行JAVA的路径信息:
JAVA_HOME=/app/jdk1.5.0_06
export JAVA_HOME
再看开机后的信息:

如果不相信,SSH进去nmap一下。

直于为什么会有一个8000的http-alt的端口,请参考我的另一篇文章《Tomcat5.5下打开远程调试端口》,这个远程端口默认情况下是不会打开的。