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

总结

道阻且长,行则将至!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/712207.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

助力知识博主,实现在家搞副业的FlowUs新策略

助力知识博主,实现在家副业的FlowUs新策略 我们设定了一个雄心勃勃的目标:帮助100位知识博主在FlowUs上实现副业成功。这个目标不仅得到了团队成员的广泛支持,甚至有人认为它过于保守,因为FlowUs的多功能性使其成为自媒体博主收入…

【多线程】如何使用jconsole工具查看Java线程的详细信息?

🥰🥰🥰来都来了,不妨点个关注叭! 👉博客主页:欢迎各位大佬!👈 文章目录 1. 先运行java程序!2. 在jdk目录下的bin文件夹中找到jconsole.exe3. 新建连接4. 观察线程状态5. …

【前端】HTML5基础

目录 0 参考1 网页1.1 什么是网页1.2 什么是HTML1.3 网页的形成 2 浏览器2.1 常用的浏览器2.2 浏览器内核 3 Web标准3.1 为什么需要Web标准3.2 Web标准的构成 4 HTML 标签4.1 HTML语法规范4.1.1 基本语法概述4.1.2 标签关系4.1.2.1 包含关系4.1.2.2 并列关系 4.2 HTML基本结构标…

解决Maven依赖引入不成功的问题

解决Maven依赖引入不成功的问题 确认IntelliJ IDEA中Maven的设置是否正确。 file --> settings --> maven 清除无效的jar,进入本地仓库清除或利用bat工具 以下是bat工具内容,运行即可。【把仓库地址换成你自己的地址进行无效jar包清除】 echo o…

【C++】编译原理

三、C编译 前面给大家演示了如何从写C代码到编译代码再到执行代码的全过程。这个过程中非常重要的编译环节,被我们一个按钮或者一个ctrlF7快捷键就给带过了。其实这个环节非常重要,如果你非常了解这个环节,你开发源代码就会更加自信和清醒&a…

视频网站下载利器yt-dlp参数详解

yt-dlp 是一个强大的命令行工具,用来下载 YouTube 和其他网站上的视频和音频。它拥有丰富的参数,可以定制下载行为,满足各种需求。本文将详细介绍 yt-dlp 的参数使用。 一、基本参数 -f, –format FORMAT: 指定下载格式,可以用视…

【系统架构】REST风格

系列文章目录 第一章 系统架构的演进 第二章 REST风格架构 文章目录 系列文章目录前言一、进程间的通信普通管道(Pipe)或者具名管道(Named Pipe)信号(Signal)信号量(Semaphore)消息…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 连续区间和(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 📎在线评测链接 连续区间和(100分) 🌍 评测功能需要订阅专栏后私信联系清隆…

如何在Spring Boot中实现图片上传至本地和阿里云OSS

在开发Web应用时,处理文件上传是常见的需求之一,尤其是在涉及到图片、视频等多媒体数据时。本文将详细介绍如何使用Spring Boot实现图片上传至本地服务器以及阿里云OSS存储服务,并提供完整的代码示例。 一、上传图片至本地 首先&#xff0c…

02_01_SpringMVC初识

一、回顾MVC三层架构 1、什么是MVC三层 MVC是 模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。主要作用是降低视图与业务逻辑之间的双向耦合,它不是一种…

外链建设如何进行?

理解dofollow和nofollow链接,所谓dofollow链接,就是可以传递权重到你的网站的链接,这种链接对你的网站排名非常有帮助,这种链接可以推动你的网站在搜索结果中的位置向上爬,但一个网站全是这种有用的链接,反…

RIP路由协议汇总(华为)

#交换设备 RIP路由协议汇总 一、原理概述 当网络中路由器的路由条目非常多时,可以通过路由汇总(又称路由汇聚或路由聚合)来减少路由条目数,加快路由收敛时间和增强网络稳定性。路由汇总的原理是,同一个自然网段内的不…

变压器绕组内部故障的Simulink仿真

​利用变压器纵联差动保护的Simulink仿真模型是无法进行变压器绕组内部故障仿真的。为了解决这一问题,可将图中的三相变压器模型改变为三个单相变压器 , 在变压器属性框中选中 “三绕组变压器” (Three windings Transformer), 从而构造出一个一次绕组, 两个二次绕组…

嵌入式学习——Linux高级编程复习(UDP编程)——day43

1. UDP编程——函数接口 1.1 socket 1. 定义 int socket(int domain, int type, int protocol); 2. 功能 创建一个用来进程通信的套接字,返回文件描述符 3. 参数 domain:AF_INET IPv4协议族 type:SOCK_STREAM 流式套接字 tcp传输协议…

一文了解Spark引擎的优势及应用场景

Spark引擎诞生的背景 Spark的发展历程可以追溯到2009年,由加州大学伯克利分校的AMPLab研究团队发起。成为Apache软件基金会的孵化项目后,于2012年发布了第一个稳定版本。 以下是Spark的主要发展里程碑: 初始版本发布:2010年开发…

前后端分离对于后端来说,是利好还是利弊呢?

前后端分离已经成为前端开发的主流模式,这种模式极大的解放了后端,让后端人员不再即当爹又当妈了,那么这种模式对于后端来说是利好还是利弊呢,如何趋利避害呢,贝格前端工场为大家分享一下。 一、什么前后端分离的开发…

值传递和址传递

值传递 上面的代码是想要交换x,y的值,把x,y传递给swap函数之后,执行下面的操作: 在swap中a和b交换了,但是和x,y没有关系,所以x,y在main中不会变。 址传递 下面再看把x…

Windows下的zip压缩包版Mysql8.3.0数据迁移到Mysql8.4.0可以用拷贝data文件夹的方式

Windows下的zip压缩包版Mysql8.3.0数据迁移到Mysql8.4.0可以用拷贝data文件夹的方式 拷贝后, 所有账户和数据都是一样的 步骤 停止MySQL服务 net stop mysql 或 sc.exe stop mysql net stop mysqlsc.exe stop mysql卸载 Mysql8.3.0 的服务 mysqld remove 或 mysqld remove m…

图书管理系统(SpringBoot+SpringMVC+MyBatis)

目录 1.数据库表设计 2.引入MyBatis和MySQL驱动依赖 3.配置数据库&日志 4.Model创建 5.用户登录功能实现 6.实现添加图书功能 7.实现翻页功能 1.数据库表设计 数据库表是应⽤程序开发中的⼀个重要环节, 数据库表的设计往往会决定我们的应⽤需求是否能顺利实现, 甚至决…

探索互联网寻址机制 | 揭秘互联网技术的核心,解析网络寻址

揭秘互联网技术的核心,解析网络寻址题 前提介绍局域网地址IP地址的分配方式动态IP分配机制内部网(intranet)ICANN负责IP分配DHCP协议获取IP地址 域名系统域名是什么域名工作方式hosts文件存储域名映射关系DNS分布式数据库DNS域名解析 Java进行…