Linux Ubuntu20 开机启动 Tomcat

一旦 Tomcat 安装完成并成功在运行,我们就可以设置在系统重启时自动启动 Tomcat。这可以确保每次启动系统时,Tomcat 就会自动运行并且处理请求。

注意:下面将在 Ubuntu20 中,通过 systemd 去实现开机后自动启动 Tomcat。

具体步骤

安装 JDK

进入 Oracle 官网下载 JDK 的 tar.gz,然后解压到指定目录。笔者下载的 JDK 为 jdk-8u161-linux-x64.tar.gz

安装 Tomcat

在开始之前,请确保已经成功安装 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

添加 service 文件

进入到 /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 主页面,则表示配置成功。

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号