当前位置: 首页 > news >正文

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

目录

  • 前言
  • 一、系统环境
  • 二、配置步骤
    • step1 了解环境的安装路径
    • step2 配置生成tomcat.pid文件
    • step3 配置tomcat.service文件
  • 三、测试systemctl命令管理Tomcat服务
    • 3.1 systemctl命令启动Tomcat服务
    • 3.2 systemctl命令查看Tomcat服务
    • 3.3 systemctl命令关闭Tomcat服务
    • 3.4 systemctl命令重启Tomcat服务
    • 3.5 systemctl命令开启Tomcat服务开机自启
    • 3.6 systemctl命令关闭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

总结

道阻且长,行则将至!

http://www.lryc.cn/news/379420.html

相关文章:

  • Python抓取高考网图片
  • Vue配置项data
  • 在IDEA 2024.1.3 (Community Edition)中创建Maven项目
  • 动手学深度学习(Pytorch版)代码实践 -卷积神经网络-28批量规范化
  • Apache Paimon系列之:Append Table和Append Queue
  • Vue使用vue-esign实现在线签名 加入水印
  • 与码无关:分数限制下,选好专业还是选好学校?
  • 什么是负载均衡技术?
  • 存在重复元素Ⅱ python3
  • 【CV炼丹师勇闯力扣训练营 Day13:§6二叉树1】
  • 代码随想录算法训练营第46天 [ 121. 买卖股票的最佳时机 122.买卖股票的最佳时机II 123.买卖股票的最佳时机III ]
  • 基于IDEA的Maven简单工程创建及结构分析
  • 解锁空间数据奥秘:ArcGIS Pro与Python双剑合璧,处理表格数据、矢量数据、栅格数据、点云数据、GPS数据、多维数据以及遥感云平台数据等
  • 后端路线指导(4):后端春招秋招经验分享
  • 面完小红书算法岗,心态崩了。。。
  • Android 断点续传进阶之多线程下载
  • Python爬虫学习 | Scrapy框架详解
  • 用户态协议栈05—架构优化
  • 模拟退火算法
  • Java匿名类
  • G7易流赋能化工物流,实现安全、环保与效率的共赢
  • y=sin(2x)
  • 快捷方式(lnk)--加载HTA-CS上线
  • 从同—视角理解扩散模型(Understanding Diffusion Models A Unified Perspective)
  • docker 基本用法及跨平台使用
  • Vscode远程ubuntu
  • SHA256 安全散列算法加速器实验
  • Elasticsearch-ES查询单字段去重
  • 【Apache Doris】周FAQ集锦:第 7 期
  • EE trade:炒伦敦金的注意事项及交易指南