Linux起动时Tomcat找不到JAVA虚拟机的问题

       最近在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下打开远程调试端口》,这个远程端口默认情况下是不会打开的。

你可能感兴趣的:(Java,Linux)