linux设置tomcat在centos6系统开机自动启动,开机后会自动执行/etc/rc.local中的命令,平时启动tomcat的命令为tomcat_home/bin/startup.sh或tomcat_home/bin/catalina.sh start,当直接把他们任何一个加入到/etc/rc.local中,
重启机器后发现tomcat并没有启动。
[root@szxjdw02-web-51 ~]# cat /etc/rc.local #!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff. touch /var/lock/subsys/local >/etc/udev/rules.d/70-persistent-net.rules /application/tomcat-sbce/bin/startup.sh
原因是开机时java的环境还没有设置好,故自己写一个脚本,先设置java环境,然后在启动,脚本如下:
#set java environment export JAVA_HOME=/usr/java/jdk export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib export PATH=$JAVA_HOME/bin:$PATH /application/tomcat-sbce/bin/startup.sh
假设保存成一个名为auto-startup.sh的文件存放在/usr/local/tomcat-6.0.35/bin下,然后在/etc/rc.local加入/usr/local/tomcat-6.0.35/bin/auto-startup.sh即可。注意:需要设置auto-startup.sh有执行权限。
为了简单高效,直接在/etc/rc.local系统开机的时候先加载java环境,再启动tomcat,如下所示:
[root@szxjdw02-web-51 ~]# cat /etc/rc.local #!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff. touch /var/lock/subsys/local >/etc/udev/rules.d/70-persistent-net.rules #set java environment export JAVA_HOME=/usr/java/jdk export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib export PATH=$JAVA_HOME/bin:$PATH /application/tomcat-sbce/bin/startup.sh
经过重启系统后,发现tomcat进程、端口、监听端口,已经自动启动起来了。
[root@szxjdw02-web-51 ~]# ps -ef|grep java root 1296 1 16 15:51 ? 00:02:21 /usr/java/jdk/bin/java -Djava.util.logging.config.file=/application/tomcat-sbce/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /application/tomcat-sbce/bin/bootstrap.jar:/application/tomcat-sbce/bin/tomcat-juli.jar -Dcatalina.base=/application/tomcat-sbce -Dcatalina.home=/application/tomcat-sbce -Djava.io.tmpdir=/application/tomcat-sbce/temp org.apache.catalina.startup.Bootstrap start root 1493 1436 0 16:06 pts/0 00:00:00 grep java [root@szxjdw02-web-51 ~]# lsof -i :8080 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 1296 root 48u IPv6 13007 0t0 TCP *:webcache (LISTEN) [root@szxjdw02-web-51 ~]# netstat -lntup|grep java tcp 0 0 ::ffff:127.0.0.1:8005 :::* LISTEN 1296/java tcp 0 0 :::8009 :::* LISTEN 1296/java tcp 0 0 :::8080 :::* LISTEN 1296/java