前言:Linux下随服务器开机自启动一般有两种方式:修改系统文件方式和作为系统服务自启动两种方式。两种都可以达到自启动目的,使用场景来说如果是学习或者研究用途,推荐前者,简单处理即可达成自启动效果。如果是稍微正式一点的环境,那么就后者,不解释!本文不比较两种方式的优略性,只单纯记录知识,请知晓!
前置内容:
- 确保您的linux服务器已安装和配置完JDK,本文DEMO中的JDK路径为:/usr/java/jdk1.8.0_291;
- 确保您的linux服务器已安装且可正常通过bin目录下的startup.sh和shutdown.sh来启动和停止TOMCAT;
- linux发行版本众多,且每个发行版又有不同版本,本文linux镜像版本为:CentOS 7.9 64位;
- 确保执行命令的用户具备相应权限;
方式1:修改系统文件方式。由于该种方式定义为简单模式,那假定需求就只是开机启动tomcat,没有其它,如果还有其他诉求,建议方式2;那么操作可以概括为:编辑/etc/rc.d/rc.local -> 将tomcat启动配置写入到rc.local中 -> 修改文件权限为可执行 三步,命令如下:
1. 编辑 /etc/rc.d/rc.local
# 编辑
vi /etc/rc.d/rc.local
2. 将下列启动配置内容插入到/etc/rc.d/rc.local中并保存,相信做开发和运维的小伙伴一定对下面的路径不陌生;注意:里面的两行配置一个都不能少
export JAVA_HOME=/usr/java/jdk1.8.0_291
/usr/java/apache-tomcat-9.0.46/bin/startup.sh start
3. 修改/etc/rc.d/rc.local为可执行文件;
chmod +x /etc/rc.d/rc.local
4. 重启测试即可
reboot
方式2:将脚本作为linux服务自启动方式。基本原理是在Linux中设置开机自启动的服务,先挂载到/etc/rcX.d然后在/etc/init.d下些启动脚本。
1. 在/etc/init.d下编写名为tomcat的shell脚本,编写完保存退出后赋予可执行权限。该脚本提供tomcat的启动、重启、停止三个功能。网上脚本大同小异,DEMO如下,具体可根据使用情况进行修改,命令和脚本内容如下::
# 编写tomcat脚本
vi /etc/init.d/tomcat
#!/bin/sh
# chkconfig: 345 99 10
# description: Auto-starts tomcat
# /etc/init.d/tomcatd
# Tomcat auto-start
# Source function library.
#. /etc/init.d/functions
# source networking configuration.
#. /etc/sysconfig/network
RETVAL=0
export JAVA_HOME=/usr/java/jdk1.8.0_291
export JRE_HOME=/usr/java/jdk1.8.0_291/jre
export CATALINA_HOME=/usr/java/apache-tomcat-9.0.46
export CATALINA_BASE=/usr/java/apache-tomcat-9.0.46
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 1
ps -fwwu root | grep tomcat|grep -v grep | grep -v PID | awk '{print $2}'|xargs kill -9
echo " OK"
# [ $RETVAL -eq 0 ] && rm -f /var/lock/...
return $RETVAL
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
echo $"Restaring Tomcat"
$0 stop
sleep 1
$0 start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit $RETVAL
# 授予可执行权限
chmod +x /etc/init.d/tomcat
2. 挂载。根本原因是由于tomcat启动时如果需要依赖其它的库,那么就要求tomcat启动要晚于它所依赖库的加载,所以需要挂载下。
ln -s /etc/init.d/tomcat /etc/rc2.d/S16Tomcat
3、设置开机脚本自启动。
chkconfig --add tomcat
4. 通过以下三个命令,判断下tomcat服务是否配置成功
service tomcat start
service tomcat stop
service tomcat restart
5. 重启测试即可。
reboot
以上,完了!
方便自己及后来者!