在CentOS7上用systemctl配置tomcat 8
环境准备
安装java环境
1 | [root@snails ~]# yum -y install java |
下载tomcat并解压
1 | wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.0.36/bin/apache-tomcat-8.0.36.tar.gz -P /usr/local |
设置环境变量
1 | [root@snails local]# vi /etc/profile |
centos7 使用 systemctl 替换了 service命令
1 | [root@snails ~]# systemctl list-unit-files --type service #查看全部服务命令 |
tips: 其中.service 可以省略。
tomcat增加启动参数
tomcat 需要增加一个pid文件
在tomca/bin 目录下面,增加 setenv.sh 配置,catalina.sh启动的时候会调用,同时配置java内存参数。
1 | [root@snails ~]# vi /usr/local/tomcat/bin/setenv.sh |
创建tomcat启动用户并授权
1 | [root@snails ~]# getent group tomcat || groupadd -r tomcat |
增加systemd-tomcat.service
在/usr/lib/systemd/system目录下增加systemd-tomcat.service,目录必须是绝对目录。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19[root@snails ~]# cd /usr/lib/systemd/system
[root@snails ~]# cat >systemd-tomcat.service <<EOF
[Unit]
Description=Apache Tomcat 8
After=syslog.target network.target
[Service]
Type=forking
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
User=tomcat
Group=tomcat
[Install]
WantedBy=multi-user.target
EOF
使用systemd-tomcat.service
1 | [root@snails ~]# systemctl enable systemd-tomcat |
因为配置pid,在启动的时候会再tomcat根目录生成tomcat.pid文件,停止之后删除。
同时tomcat在启动时候,执行start不会启动两个tomcat,保证始终只有一个tomcat服务在运行。