Centos 7 使用 systemd 管理 Tomcat 多实例
安装 tomcat
使用网易的 yum 源,直接使用 yum install 命令就可以安装 tomcat。命令行如下:
$ 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
。命令如下:
$ cp /etc/sysconfig/tomcat /etc/sysconfig/tomcat@procurement.itf
然后,我们修改配置文件的以下几项。
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/ 目录后,复制一些文件和文件夹即可。命令行如下:
$ 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 来实现。如下:
$ mkdir -p /etc/systemd/system/tomcat@procurement.itf.service.d/ $ vim /etc/systemd/system/tomcat@procurement.itf.service.d/override.conf
新增如下内容:
[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
技术交流
原文链接:Centos 7 使用 systemd 管理 Tomcat 多实例,转载请注明来源!