[转帖] Centos 7 使用 systemd 管理 Tomcat 多实例

原贴地址:https://www.bo56.com/centos-7-%E4%BD%BF%E7%94%A8-systemd-%E7%AE%A1%E7%90%86-tomcat-%E5%A4%9A%E5%AE%9E%E4%BE%8B/

Centos 7 使用 systemd 管理 Tomcat 多实例

安装 tomcat

使用网易的 yum 源,直接使用 yum install 命令就可以安装 tomcat。命令行如下:

1
2
3
cd /etc/yum.repos.d/
$ wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
$ yum install  tomcat -y

使用 systemd 管理多个 tomcat 实例

现在我们新建一个实例 procurement.itf。目标是可以使用 systemctl start tomcat@procurement.itf 类似的命令管理实例。

首先,设置配置文件

tomcat 已经为我们提供了配置文件的模板,就是 /etc/sysconfig/tomcat
复制一份 /etc/sysconfig/tomcat ,并命令为 tomcat@procurement.itf 。命令如下:

1
$ cp /etc/sysconfig/tomcat /etc/sysconfig/tomcat@procurement.itf

然后,我们修改配置文件的以下几项。

1
2
3
CATALINA_BASE=/var/lib/tomcats/procurement.itf/
CONNECTOR_PORT="8180"
CATALINA_OPTS="-server -Xms4G -Xmx4G -XX:PermSize=512m -XX:MaxPermSize=512m -XX:MaxGCPauseMillis=1000 -Djava.awt.headless=true -XX:-OmitStackTraceInFastThrow -Xloggc:/var/lib/tomcats/procurement.itf/logs/gc.log -XX:+UseG1GC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -Ddeployment.security.TLSv1.1=true -Ddeployment.security.TLSv1.2=true"

可以根据需要再修改其他项。我们示例中只修改了 CATALINA_BASE 和 CONNECTOR_PORT。 新增了 CATALINA_OPTS 。

然后创建 CATALINA_BASE 目录

创建 /var/lib/tomcats/procurement.itf/ 目录后,复制一些文件和文件夹即可。命令行如下:

1
2
3
4
5
6
7
$ mkdir /var/lib/tomcats/procurement.itf/
$ cd /var/lib/tomcats/procurement.itf/
$ cp -pr /etc/tomcat conf
$ cp -pr /var/log/tomcat logs
$ cp -pr /var/cache/tomcat/temp .
$ cp -pr /var/cache/tomcat/work .
$ cp -pr /var/lib/tomcat/webapps .

设置独立的启动用户

如果我们在启动 Java 进程的时候,不想使用 tomcat 用户。我们可以通过 override 来实现。如下:

1
2
$ mkdir -p /etc/systemd/system/tomcat@procurement.itf.service.d/
$ vim /etc/systemd/system/tomcat@procurement.itf.service.d/override.conf

新增如下内容:

1
2
[Service]
User=procurement.itf

这个文件可以覆盖 /usr/lib/systemd/system/tomcat@.service 文件的配置。

启动服务

现在就可以使用 systemctl start tomcat@procurement.itf 命令启动了。
启动后可以使用 systemctl status tomcat@procurement.itf 查看启动结果。
如果,启动失败。可以通过 journalctl -u tomcat@procurement.itf 命令查看日志信息。
可以使用 systemctl cat tomcat@procurement.itf 这个服务的相关配置文件。

注意

如果在启动过程中出现文件没有权限。需要注意是否开启了 selinux。
注意文件的所属组是 tomcat,文件所有者要设置为 procurement.itf

posted @ 2020-04-12 17:21  伊贺双刀流  阅读(194)  评论(0编辑  收藏  举报