背景:项目部署好后,每次重启虚拟机后,需手动启动Tomcat,为了减少重复操作,特研究怎么设置Tomcat开机自动启动,实践了几种方法,下边的方法靠谱有效,以供参考。
检查安装环境配置路径:
JDK根目录:/usr/lib/jvm/java-1.8.0-openjdk-amd64(openJDK安装的默认路径);
Tomcat根目录:/usr/local/tomcat(Tomcat安装的默认路径)
1.进入Tomcat的bin目录:
root@ubuntu:~$ cd /usr/local/tomcat/bin
root@ubuntu:/usr/local/tomcat/bin$
2.复制bin目录下的catalina.sh到/etc/init.d目录下:
root@ubuntu:~$ sudo cp /usr/local/tomcat/bin/catalina.sh /etc/init.d
3.重命名/etc/init.d下的catalina.sh文件为tomcat:
root@ubuntu:~$ sudo mv /etc/init.d/catalina.sh tomcat
4.编辑tomcat文件添加文件头内容如下:
#!/bin/bash
### BEGIN INIT INFO
# Provides: XXX
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start XXX daemon at boot time
# Description: Start XXX daemon at boot time
### END INIT INFO
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
CATALINA_HOME=/usr/local/tomcat
CLASSPATH=.:$JAVA_HOME/lib:$CATALINA_HOME/lib
start()
{
if [ -f $CATALINA_HOME/bin/startup.sh ]
then
echo $"Starting Tomcat"
$CATALINA_HOME/bin/startup.sh
RETVAL=$?
echo "OK"
return $RETVAL
fi
}
stop()
{
if [ -f $CATALINA_HOME/bin/shutdown.sh ]
then
echo $"Stopping Tomcat"
$CATALINA_HOME/bin/shutdown.sh
RETVAL=$?
sleep 3
ps -fwwu tomcat | grep apache-tomcat | grep -v grep | grep -v PID | awk '{print $2}'| xargs kill -9
echo "OK"
return $RETVAL
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
echo $"Restarting Tomcat"
$0 stop
sleep 3
$0 start
;;
*)
echo $"Usage:$0{start|stop|restart}"
exit 1
;;
esac
exit $RETVAL
5.给tomcat文件加可执行权限:
root@ubuntu:~$ sudo chmod +x /etc/init.d/tomcat
6.重新加载服务配置:
systemctl daemon-reload
7.启动tomcat服务:
service tomcat start
8.启动成功后接着配置开机启动,修改/etc/rc.local文件,添加内容如下:
#!/bin/bash
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
service tomcat start
exit 0
9.复制/etc/rc.local到/etc/rc0.d目录下:
sudo cp /etc/rc.local /etc/rc0.d
10.给这两个文件加执行权限:
sudo chmod +x /etc/rc.local
sudo chmod +x /etc/rc0.d/rc.local
11.重启虚拟机:
sudo reboot
12.检查tomcat是否自启动,若输出...Bootstrap start 说明tomcat已经正常启动。
root@ubuntu:~$ ps -ef|grep java
root 1168 1 0 01:08 ? 00:00:17 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/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 /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root 3770 3490 0 01:45 pts/0 00:00:00 grep --color=auto java