在centOS使用systemctl配置启动多个tomcat

本文详细介绍了在CentOS系统中使用systemctl命令配置和管理多个Tomcat服务的过程,包括配置JDK环境、下载和解压Tomcat、设置启动参数、创建账户、配置systemctl服务文件等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在centOS使用systemctl配置启动多个tomcat

公司服务器使用的是阿里云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)

 

  1. 首先需要配置下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

  2. 下载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

  3. 配置tomcat的启动参数

    因为需要通过systemctl管理多个tomcat,这个时候环境配置不需要写到/etc/profile文件里面,单独修改tomcat里面的/bin/catalina.sh文件即可

    vim /opt/tomcat/apache-tomcat-8.5.35/bin/catalina.sh
    # 最上面添加一行
    export JAVA_HOME=/usr/local/java/jdk1.8.0_191

    # 编辑/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

     

  4. 创建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

  5. 配置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!

  6. 上面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配置文件

需要修改三个端口号,这样的话就可以启动了。

 

 

posted @ 2018-12-23 16:19 陈灬大灬海 阅读( ...) 评论( ...) 编辑 收藏
<think>嗯,用户想在CentOS上运行两个Tomcat实例。我需要仔细考虑如何一步步指导他们完成这个过程。首先,用户可能对CentOSTomcat有一定了解,但可能不熟悉多实例配置。我要确保步骤清晰,避免遗漏关键点。 首先,安装Tomcat。用户可能已经安装了第一个实例,但为了全面,我应该提到如何安装Tomcat,比如使用wget下载,解压,并设置环境变量。然后,复制一份作为第二个实例,修改端口号是关键,因为默认的8080、8005等会被第一个实例占用。需要指出具体的配置文件,比如server.xml中的各个端口,并给出修改后的示例值,比如8081、8006等。 接下来,可能需要设置不同的环境变量,比如CATALINA_HOME和CATALINA_BASE,这样两个实例可以独立运行。这里要说明如何创建setenv.sh文件,并赋予执行权限。然后,启动和停止服务的命令,可能需要分别进入两个实例的bin目录,或者编写服务脚本,但用户可能更熟悉直接使用startup.sh和shutdown.sh。 另外,考虑用户可能希望将Tomcat配置为系统服务,这样更方便管理。这里可以介绍如何为每个实例创建systemd服务文件,并启用开机启动。这部分需要详细说明文件路径和内容,以及可能的权限设置。 还要注意防火墙设置,确保端口如8081是开放的。用户可能遇到端口冲突或者防火墙阻止的问题,提醒他们检查这些点。 最后,验证步骤,用curl或浏览器访问两个不同的端口,确认两个实例都正常运行。可能还需要提到日志文件的查看位置,帮助用户排查问题。 整个过程中,需要确保命令准确,路径正确,避免权限问题。同时,用中文清晰解释每个步骤的目的,让用户理解为什么要修改特定配置,而不仅仅是按步骤操作。这样用户遇到类似问题时,也能举一反三。</think>在CentOS系统上同时运行两个Tomcat实例,可以通过以下步骤实现: --- ### **一、安装Tomcat** 1. 下载并解压两份Tomcat安装包 ```bash wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.68/bin/apache-tomcat-9.0.68.tar.gz tar -zxvf apache-tomcat-9.0.68.tar.gz mv apache-tomcat-9.0.68 tomcat1 cp -r tomcat1 tomcat2 ``` --- ### **二、配置环境变量** 1. 编辑 `~/.bashrc` 或 `/etc/profile` ```bash # Tomcat1配置 export CATALINA_HOME=/opt/tomcat1 export CATALINA_BASE=/opt/tomcat1 # Tomcat2配置 export CATALINA_HOME2=/opt/tomcat2 export CATALINA_BASE2=/opt/tomcat2 ``` 2. 使配置生效 ```bash source ~/.bashrc ``` --- ### **三、修改端口冲突(关键步骤)** 进入第二个Tomcat配置文件: ```bash vim tomcat2/conf/server.xml ``` 修改以下端口(示例值): ```xml <!-- 原端口 → 新端口 --> <Server port="8005" → "8006"/> <!-- 关闭监听端口 --> <Connector port="8080" → "8081"/> <!-- HTTP访问端口 --> <Connector port="8009" → "8010"/> <!-- AJP协议端口 --> ``` --- ### **四、配置独立启动脚本** 1. 为每个Tomcat创建启动脚本: ```bash # Tomcat1启动脚本 echo 'export CATALINA_HOME=/opt/tomcat1' > tomcat1/bin/setenv.sh echo 'export CATALINA_BASE=/opt/tomcat1' >> tomcat1/bin/setenv.sh chmod +x tomcat1/bin/setenv.sh # Tomcat2启动脚本 echo 'export CATALINA_HOME=/opt/tomcat2' > tomcat2/bin/setenv.sh echo 'export CATALINA_BASE=/opt/tomcat2' >> tomcat2/bin/setenv.sh chmod +x tomcat2/bin/setenv.sh ``` --- ### **五、启动与验证** 1. 分别启动两个实例 ```bash tomcat1/bin/startup.sh tomcat2/bin/startup.sh ``` 2. 检查端口监听状态 ```bash netstat -tulnp | grep java ``` 3. 访问验证 ```bash curl http://localhost:8080 # Tomcat1 curl http://localhost:8081 # Tomcat2 ``` --- ### **六、配置为系统服务(可选)** 1. 创建systemd服务文件 ```bash # Tomcat1服务 vim /etc/systemd/system/tomcat1.service [Unit] Description=Tomcat1 Service After=syslog.target network.target [Service] Type=forking Environment="CATALINA_HOME=/opt/tomcat1" Environment="CATALINA_BASE=/opt/tomcat1" ExecStart=/opt/tomcat1/bin/startup.sh ExecStop=/opt/tomcat1/bin/shutdown.sh [Install] WantedBy=multi-user.target # 同理创建tomcat2.service ``` 2. 启动并设置开机自启 ```bash systemctl daemon-reload systemctl start tomcat1 systemctl start tomcat2 systemctl enable tomcat1 tomcat2 ``` --- ### **七、防火墙配置** ```bash firewall-cmd --permanent --add-port=8080-8081/tcp firewall-cmd --reload ``` --- ### **注意事项** 1. 内存分配:根据服务器内存调整 `JAVA_OPTS` 参数 2. 日志分离:两个实例的日志分别存储在各自目录的 `logs/` 下 3. 权限管理:建议使用非root用户运行Tomcat 通过以上步骤,您可以实现两个Tomcat实例的独立运行。如果遇到端口冲突问题,请再次检查 `server.xml` 中的端口配置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈灬大灬海

万水千山总是情

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值