Linux-Tomcat服务配置到系统服务

前言

本篇文章介绍如何将Tomcat服务配置到系统服务,实现使用systemctl命令管理Tomcat服务。

一、系统环境

  • 虚拟机版本:VMware® Workstation 15 Pro
  • Linux镜像文件:CentOS-7-x86_64-Minimal-1804.iso
  • 主机系统:Windows 11 家庭中文版
  • 主机系统类型:64 位操作系统, 基于 x64 的处理器
  • 远程连接工具:MobaXterm中文版本

二、配置步骤

step1 了解环境的安装路径

JDK安装路径:/export/server/jdk
Tomcat安装路径:/export/server/tomcat
读者根据自己的安装路径进行配置

step2 配置生成tomcat.pid文件

为了配置tomcat.service文件的[Service]区块的PIDFile字段,需要配置启动Tomcat时自动生成tomcat.pid文件,此文件保存的是运行Tomcat时的进程号。

vi /export/server/tomcat/bin/catalina.sh

添加以下内容
CATALINA_PID=$CATALINA_BASE/tomcat.pid

在这里插入图片描述
启动Tomcat服务,其自动会在tomcat的安装路径生成tomcat.pid文件(这里是/export/server/tomcat/)
当然,可以自定义生成路径,例如CATALINA_PID=自定义路径

step3 配置tomcat.service文件

在/usr/lib/systemd/system/目录下新建tomcat.service文件

vi /usr/lib/systemd/system/tomcat.service

添加以下内容

[Unit]
Description=Tomcat service
After=network.target

[Service]
Type=forking
Environment="JAVA_HOME=/export/server/jdk/"
User=tomcat
Group=tomcat
PIDFile=/export/server/tomcat/tomcat.pid
ExecStart=/export/server/tomcat/bin/startup.sh
ExecStop=/export/server/tomcat/bin/shutdown.sh
ExecReload=/usr/bin/kill -s SIGHUP $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

tomcat.service文件分为三个区块,[Unit]、[Service]、[Install]

  • [Unit]区块:定义服务的启动顺序和服务的依赖关系
    Description:服务的描述字段
    After:服务的启动顺序。例如After=network.target表示系统网络服务启动后再启动服务

  • [Service]区块:定义服务的启动行为
    Type:服务的启动类型
    Type=simple(默认), 表示以ExecStart字段启动的进程为主进程
    Type=forking , 表示以ExecStart字段启动时,创建一个子进程并作为服务的主进程(后台运行)
    Type=notify , 表示启动服务结束后发出通知信号,Systemd再启动其他服务
    Environment:服务的运行的环境,需要借助JDK的环境运行。(此字段必须配置)
    User:服务的所属用户
    Group:服务的所属用户组
    PIDFile:服务的pid文件
    ExecStart:启动服务的程序文件(必须写绝对路径)
    ExecStop:关闭服务的程序文件(必须写绝对路径)
    ExecReload:服务重启的程序文件,这里借助系统提供的kill命令实现服务的重启
    PrivateTmp:服务是否创建临时的私有空间

  • [Install]区块:定义如何安装这个配置文件,即怎样做到开机启动
    WantedBy:服务依赖的 Target

配置完成后,重载系统守护进程

systemctl daemon-reload

三、测试systemctl命令管理Tomcat服务

3.1 systemctl命令启动Tomcat服务

systemctl start tomcat.service

3.2 systemctl命令查看Tomcat服务

systemctl status tomcat.service

在这里插入图片描述

3.3 systemctl命令关闭Tomcat服务

systemctl stop tomcat.service

在这里插入图片描述

3.4 systemctl命令重启Tomcat服务

systemctl restart tomcat.service

在这里插入图片描述

3.5 systemctl命令开启Tomcat服务开机自启

systemctl enable tomcat.service

在这里插入图片描述

3.6 systemctl命令关闭Tomcat服务开机自启

systemctl disable tomcat.service

在这里插入图片描述

四、问题分析

在这里插入图片描述
出现这个问题的原因是配置tomcat.service的时候没有配置好[Service]区块的Environment字段

参考文献

[1] https://blog.csdn.net/cshongye/article/details/120261915
[2] https://blog.csdn.net/arv002/article/details/121779213

总结

道阻且长,行则将至!

  • 20
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值