[转帖] 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

浙公网安备 33010602011771号