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
注意
:Environment=”JAVA_HOME=/usr/local/jdk1.8.0_192″ 这里要配置环境变量,/etc/profile中的配置在系统服务中并不生效。
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
查看服务状态:
$ systemctl status 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