原贴地址: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