二丫讲梵 二丫讲梵
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)

二丫讲梵

行者常至,为者常成
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)
  • 最佳实践

  • 迎刃而解

  • Nginx

  • Php

  • Zabbix

  • AWS

  • Prometheus

  • Grafana

  • Loki

  • CentOS

  • Supervisord

  • Systemd

    • CentOS7主机使用systemd管理应用
    • 使用systemctl管理tomcat多实例
      • 1,环境说明。
      • 2,为 tomcat 配置 pid。
      • 3,创建 tomcat.service 文件。
      • 4,验证配置。
      • 附:如何使用 systemctl 管理 tomcat 多实例?
        • 1,配置多实例。
        • 2,重复上边的配置。
  • Docker

  • Docker-Compose

  • Rancher

  • Ansible

  • OpenLdap

  • GitLab

  • GitHub

  • Etcd

  • Consul

  • RabbitMQ

  • Kafka

  • Mysql

  • MongoDB

  • OpenVPN

  • Kvm

  • VMware

  • 配置文件详解

  • Other

  • 运维观止
  • Systemd
二丫讲梵
2019-02-18
目录

使用systemctl管理tomcat多实例

文章发布较早,内容可能过时,阅读注意甄别。

之前因为遭遇过测试服务器断电,然后启动之后所有的 Tomcat 服务都没有开机自启,所以就需要一台机器一台机器跑过去进行手动操作一遍,非常费劲儿,后来也研究过通过将启动命令加入开启自启脚本里边进行启动,效果均不理想。

现在,了解到在 CentOS7 当中通过 systemctl 管理 Tomcat,不仅方便,而且加入开机自启之后,效果也非常的好,今天就来配置一下这个东东。

# 1,环境说明。

  • 主机系统:CentOS Linux release 7.3.1611 (Core)
  • jdk 版本:java version “1.8.0_192”
  • tomcat 版本:Apache Tomcat/8.5.34

# 2,为 tomcat 配置 pid。

$ vim /usr/local/tomcat/bin/catalina.sh
在111行添加如下内容:
CATALINA_PID="/usr/local/tomcat/tomcat.pid"
1
2
3

申明

原创文章eryajf,未经授权,严禁转载,侵权必究!此乃文中随机水印,敬请读者谅解。

Copyright 二丫讲梵 (opens new window) 版权所有

# 3,创建 tomcat.service 文件。

$ cat > /usr/lib/systemd/system/tomcat.service << "EOF"
[Unit]
Description=Tomcat
After=network.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/jdk1.8.0_192"
PIDFile=/usr/local/tomcat/tomcat.pid
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

注意:Environment=”JAVA_HOME=/usr/local/jdk1.8.0_192″ 这里要配置环境变量,/etc/profile 中的配置在系统服务中并不生效。

# 4,验证配置。

操作前,先加载刚刚添加的配置。

$ systemctl daemon-reload
1

加入开机自启动。

[root@moban system]$ systemctl enable tomcat
Created symlink from /etc/systemd/system/multi-user.target.wants/tomcat.service to /usr/lib/systemd/system/tomcat.service.
1
2

启动服务。

$ systemctl start tomcat
1

查看服务状态。

[root@moban tomcat]$ systemctl status tomcat
● tomcat.service - Tomcat
   Loaded: loaded (/usr/lib/systemd/system/tomcat.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-02-18 13:52:34 CST; 4s ago
  Process: 13503 ExecStart=/usr/local/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 13512 (java)
   CGroup: /system.slice/tomcat.service
           └─13512 /usr/local/jdk1.8.0_192/bin/java -Dnop -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.p...
Feb 18 13:52:34 moban systemd[1]: Starting Tomcat...
Feb 18 13:52:34 moban startup.sh[13503]: Tomcat started.
Feb 18 13:52:34 moban systemd[1]: Started Tomcat.
1
2
3
4
5
6
7
8
9
10
11

然后重启一下主机,测试一下开机自启是否有效,经过测试,我这里是可以的。

image

# 附:如何使用 systemctl 管理 tomcat 多实例?

日常生产中,一台服务器当中部署多个 tomcat 实例是非常常见的情况,所以这里拓展了解一下多实例配置的方式。

其实多实例配置的方式跟上边是一样的,只不过把对应的内容区分开即可。

# 1,配置多实例。

首先把刚刚配置好的 tomcat 复制一份。

$ cd /usr/local/
$ cp -a tomcat tomcat_app
1
2

然后更改 config/server.xml 里的端口,这个就不细说了。

# 2,重复上边的配置。

先修改 pid 文件路径。

$ vim tomcat_app/bin/catalina.sh
修改为如下情况:
CATALINA_PID="/usr/local/tomcat_app/tomcat.pid"
1
2
3

拷贝启动配置文件。

$ cd /usr/lib/systemd/system
$ cp tomcat.service tomcat_app.service
1
2

这个地方应该注意下,系统通过 systemctl 管理服务的时候,服务的名称就是上边定义的文件名。

简单更改一下里边对应的内容。修改之后如下:

[Unit]
Description=Tomcat
After=network.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/jdk1.8.0_192"
PIDFile=/usr/local/tomcat_app/tomcat.pid
ExecStart=/usr/local/tomcat_app/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
1
2
3
4
5
6
7
8
9
10
11
12
13

最后验证一下。

$systemctl daemon-reload
$systemctl enable tomcat_app
$systemctl start tomcat_app
$systemctl status tomcat_app
1
2
3
4

这样通过 systemctl 管理单台主机上的 tomcat 多实例就轻松实现了。

微信 支付宝
上次更新: 2024/07/04, 22:40:37
CentOS7主机使用systemd管理应用
从DockerHub到阿里云镜像仓库:整理汇总我同步过的docker镜像(公开可匿名pull)

← CentOS7主机使用systemd管理应用 从DockerHub到阿里云镜像仓库:整理汇总我同步过的docker镜像(公开可匿名pull)→

最近更新
01
记录二五年五一之短暂回归家庭
05-09
02
学习周刊-总第210期-2025年第19周
05-09
03
学习周刊-总第209期-2025年第18周
05-03
更多文章>
Theme by Vdoing | Copyright © 2017-2025 | 点击查看十年之约 | 浙ICP备18057030号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式