• 对于注定会优秀的人来说,他所需要的,只是时间----博主
  • 手懒得,必受贫穷,手勤的,必得富足----《圣经》
  • 帮助别人,成就自己。愿君在本站能真正有所收获!
  • 如果你在本站中发现任何问题,欢迎留言指正!
  • 宝剑锋从磨砺出,梅花香自苦寒来!
  • 本站开启了防爆破关小黑屋机制,如果您是正常登录但被关进小黑屋,请联系站长解除!

使用systemctl管理tomcat多实例

系统与优化 eryajf 9个月前 (02-18) 794°C 已收录 2个评论
本文预计阅读时间 8 分钟

之前因为遭遇过测试服务器断电,然后启动之后所有的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"

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

4,验证配置。

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

$ systemctl daemon-reload

加入开机自启动。

[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.

启动服务。

$ systemctl start tomcat

查看服务状态。

[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.

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

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

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

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

1,配置多实例。

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

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

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

2,重复上边的配置。

先修改pid文件路径。

$ vim tomcat_app/bin/catalina.sh

修改为如下情况:

CATALINA_PID="/usr/local/tomcat_app/tomcat.pid"

拷贝启动配置文件。

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

这个地方应该注意下,系统通过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

最后验证一下。

$systemctl daemon-reload
$systemctl enable tomcat_app
$systemctl start tomcat_app
$systemctl status tomcat_app

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


weinxin
扫码订阅本站,第一时间获得更新
微信扫描二维码,订阅我们网站的动态,另外不定时发送WordPress小技巧,你可以随时退订,欢迎订阅哦~

二丫讲梵 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明使用systemctl管理tomcat多实例
喜欢 (1)
[如果想支持本站,可支付宝赞助]
分享 (0)
eryajf
关于作者:
学无止境,我愿意无止境学。书山有路,我愿意举身投火,淬炼成金!

您必须 登录 才能发表评论!

(2)个小伙伴在吐槽
  1. 为啥不用supervisor
    fsckzy2019-02-26 08:32 Windows 10 | Chrome 72.0.3626.119
    • eryajf
      话说这个我之前在研究supervisor的时候还真配置过,但是当时体验下来的效果并不是很理想,要不就是tomcat会不停重启,要不就是会启动好几个进程,最后也放弃了。现在这种systemd的方式,还是挺不错的
      eryajf2019-02-26 08:55 Windows 7 | Chrome 70.0.3538.9