一旦 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 主页面,则表示配置成功。