一旦 Tomcat 安装完成并成功在运行,我们就可以设置在系统重启时自动启动 Tomcat。这可以确保每次启动系统时,Tomcat 就会自动运行并且处理请求。
注意:下面将在 Ubuntu20 中,通过 systemd 去实现开机后自动启动 Tomcat。
进入 Oracle 官网下载 JDK 的 tar.gz,然后解压到指定目录。笔者下载的 JDK 为 jdk-8u161-linux-x64.tar.gz
在开始之前,请确保已经成功安装 Tomcat,能够正常启动且访问。如何安装 Tomcat 请参考 “Linux 安装 Tomcat”
注意:Tomcat 安装包名称为 apache-tomcat-8.5.73.tar.gz,将 tomcat 安装在 /usr/local/tomcat 目录下面;
添加环境变量
进入到 tomcat 的 bin 目录,修改 setclasspath.sh 文件。在文件中添加如下脚本:
# ----------------------------------------------------------------------------- # Set JAVA_HOME or JRE_HOME if not already set, ensure any provided settings # are valid and consistent with the selected start-up options and set up the # endorsed directory. # ----------------------------------------------------------------------------- export JAVA_HOME=/home/snow/jdk1.8.0_161 export CATALINA_BASE=/usr/local/tomcat export CATALINA_PID=$CATALINA_BASE/tomcat.pid
进入到 /etc/systemd/system 目录,并且创建 tomcat8.service 文件,内容如下:
[Unit] Description=A Servlet Container [Service] Type=forking PIDFile=/usr/local/tomcat/tomcat.pid ExecStart=/usr/local/tomcat/bin/catalina.sh start ExecStop=/usr/local/tomcat/bin/catalina.sh stop [Install] WantedBy=multi-user.target
然后,给 tomcat8.service 文件添加可执行权限,命令如下:
snow@ubuntu20:/etc/systemd/system$ sudo chmod +x tomcat8.service
注意:ExecStart 用来指定启动时执行命令;ExecStop 用来指定停止时执行的命令;
使用 systemctl start 命令去启动 tomcat 服务,命令如下:
snow@ubuntu20:/etc/systemd/system$ sudo systemctl start tomcat8
使用 systemctl status 命令查看 tomcat 服务的状态,命令如下:
snow@ubuntu20:/etc/systemd/system$ sudo systemctl status tomcat8 ● tomcat8.service - A Servlet Container Loaded: loaded (/etc/systemd/system/tomcat8.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2021-12-09 13:41:31 CST; 9s ago Process: 4277 ExecStart=/usr/local/tomcat/bin/catalina.sh start (code=exited, status=0/SUCCESS) Main PID: 4283 (java) Tasks: 22 (limit: 4612) Memory: 91.8M CPU: 4.224s CGroup: /system.slice/tomcat8.service └─4283 /home/snow/jdk1.8.0_161/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging> 12月 09 13:41:31 ubuntu20 systemd[1]: Starting A Servlet Container... 12月 09 13:41:31 ubuntu20 catalina.sh[4277]: Tomcat started. 12月 09 13:41:31 ubuntu20 systemd[1]: Started A Servlet Container
也可以使用 systemctl list-units --all --type=service 命令查看服务的状态,命令如下:
snow@ubuntu20:/etc/systemd/system$ sudo systemctl list-units --all --type=service | grep tomcat tomcat8.service loaded active running A Servlet Container
使用 systemctl enable 命令将 tomcat8 服务设置为开机自动启动。命令如下:
snow@ubuntu20:/etc/systemd/system$ sudo systemctl enable tomcat8 Created symlink /etc/systemd/system/multi-user.target.wants/tomcat8.service → /etc/systemd/system/tomcat8.service.
重启 Ubuntu20 系统,然后通过浏览器访问 http://127.0.0.1:8080 地址,如果能够正常访问 tomcat 主页面,则表示配置成功。