公司服务器使用的是阿里云 CentOS7,CentOS7 和 CentOS6 目前最大区别就是 service 变成了现在的 systemctl, 简单的查了一下并结合使用, 发现 systemctl 功能上等同于 6 上面的 service+chkconfig, 也就是说配置 service 与设置开机启动都是使用 systemctl.
简单介绍 systemctl 命令的使用
- systemctl list-unit-files --type service #查看全部服务命令
- systemctl status name.service #查看服务命令
- systemctl start name.service #启动服务
- systemctl stop name.service #停止服务
- systemctl restart name.service #重启服务
- systemctl enable name.service #增加开机启动
- systemctl disable name.service #删除开机启动
截图展示下公司的服务器配置, 的确是高
自己购买了个单核 2g 的服务器自个练习下 Linux 操作.
用于公司项目的服务都是通过 systemctl 来启动的.
所以在此总结一下 systemctl 配置 tomcat 的过程.
先看一下效果 (启动了两个 tomcat, 一个是 7, 一个是 8.5)
首先需要配置下 jdk 的环境
直接下载对应的 jdk 版本, 编辑 VIM /etc/pro
- export JAVA_HOME=/usr/local/java/jdk1.8.0_191
- export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
- export PATH=$PATH:$JAVA_HOME/bin
下载 tomcat
下载 tomcat, 地址 https://tomcat.apache.org/download-80.cgi 进行如下操作
- # 下载
- wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.37/bin/apache-tomcat-8.5.37.tar.gz -P /opt/tomcat
- # cd 到 tomcat 包的目录
- cd /opt/tomcat
- # 解压 tomcat 包
- tar -zxf apache-tomcat-8.5.37.tar.gz
- # 创建符号链接 tomcat8, 因为解压出来的包名比较长, 为了方便
- ln -s apache-tomcat-8.5.37 tomcat8
- # 可以选择删除 tomcat 包
- rm -rf apache-tomcat-8.5.37.tar.gz
配置 tomcat 的启动参数
因为需要通过 systemctl 管理多个 tomcat, 这个时候环境配置不需要写到 / etc/profile 文件里面, 单独修改 tomcat 里面的 / bin/catalina.sh 文件即可
- 1
- VIM /opt/tomcat/apache-tomcat-8.5.35/bin/catalina.sh
- # 最上面添加一行
- export JAVA_HOME=/usr/local/java/jdk1.8.0_191
- 2
- # 编辑 / opt/tomcat/apache-tomcat-8.5.35/bin/setenv.sh, 没有的话就新建
- VIM /opt/tomcat/apache-tomcat-8.5.35/bin/setenv.sh
- # 输入以下配置选项 (tomcat 有很多配置选项)
- # 设置 tomcat pid
- CATALINA_PID="$CATALINA_BASE/tomcat.pid"
- # 设置 java 参数, 提高性能
- JAVA_OPTS="-server -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m"
- # 保存文件
- # 修改文件权限变为可执行
- chmod a+x /opt/tomcat/apache-tomcat-8.5.35/bin/setenv.sh
创建 tomcat 账户来启动 tomcat, 并修改 tomcat 文件的属性
- getent group tomcat || groupadd -r tomcat
- getent passwd tomcat || useradd -r -d /opt -s /bin/nologin -g tomcat tomcat
- chown -R tomcat:tomcat /opt/apache-tomcat-8.0.36
配置 systemctl 来管理 tomcat
- # 在 / usr/lib/systemd/system 目录下新建 tomcat8.service 文件
- cd /usr/lib/systemd/system
- # 创建 tomcat8.service 文件
- VIM tomcat8.service
- # 输入以下内容
- [Unit]
- Description=Apache Tomcat 8 chy
- After=syslog.target network.target
- [Service]
- Type=forking
- PIDFile=/opt/tomcat/apache-tomcat-8.5.35/tomcat.pid
- ExecStart=/opt/tomcat/apache-tomcat-8.5.35/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
- # 保存 wq!
上面 tomcat8.service 文件创建完毕后就可以通过 systemctl 来管理 tomcat 了
通过 systemctl enable tomcat8 设置为开机自启
通过 systemctl start tomcat8 启动 tomcat 服务
检验 curl localhost:8080
tomcat 启动时会在 tomcat 的根目录 / opt/tomcat8 下生成 pid 文件 tomcat.pid, 停止后会删除, 用 systemctl 管理 tomcat 不会出现同时启动多个 tomcat, 这样可以保证始终只有一个 tomcat 在运行
ok, 完成.
参考 https://www.cnblogs.com/ieinstein/p/7096650.html
参考这篇博客第一次没有配置成功, 之后才知道在上述的第三部配置 Catalina.sh 的时候错误了.
如果想再配置一个 tomcat7, 就像这样
systemctl list-unit-files --type service
配置跟配置 tomcat8 类似, 区别就是需要修改 tomcat 的 server.xml 配置文件.
需要修改三个端口号, 这样的话就可以启动了.
来源: https://www.cnblogs.com/c-h-y/p/10158791.html