zoukankan      html  css  js  c++  java
  • 在CentOS7中设置Tomcat开机自启动

    假设Tomcat的安装路径为/opt/tomcat

    1 为Tomcat添加启动参数

    catalina.sh在执行的时候会调用同级路径下的setenv.sh来设置额外的环境变量,因此在/opt/tomcat/bin路径下创建setenv.sh文件,内容如下:

    export CATALINA_HOME=/opt/tomcat
    export CATALINA_BASE=/opt/tomcat
    #设置Tomcat的PID文件
    CATALINA_PID="$CATALINA_BASE/tomcat.pid"
    #添加JVM选项
    JAVA_OPTS="-server -XX:PermSize=256M -XX:MaxPermSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m"

    2 编写tomcat.service文件

    在/usr/lib/systemd/system路径下添加tomcat.service文件,内容如下:

    [Unit]
    Description=Tomcat
    After=syslog.target network.target remote-fs.target nss-lookup.target

    [Service]
    Type=forking
    PIDFile=/opt/tomcat/tomcat.pid
    ExecStart=/opt/tomcat/bin/startup.sh
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/bin/kill -s QUIT $MAINPID
    PrivateTmp=true

    [Install]
    WantedBy=multi-user.target

    ##[unit]配置了服务的描述,规定了在network启动之后执行,
    ##[service]配置服务的pid,服务的启动,停止,重启
    ##[install]配置了使用用户

    3 将Tomcat加入服务管理

    systemctl enable tomcat.service
    systemctl disable tomcat.service
    systemctl start tomcat.service
    systemctl stop tomcat.service
    systemctl restart tomcat.service

    CentOS7开始,从/etc/init.d脚本改为了systemctl管理服务。

    亲自测试成功。

    1.首先,需要为tomcat配置pid。

    bin/catalina.sh

    [java] view plain copy

    1. # Copy CATALINA_BASE from CATALINA_HOME if not already set  
    2. [ -z "$CATALINA_BASE" ] && CATALINA_BASE="$CATALINA_HOME"  
    3. # 设置pid。一定要加在CATALINA_BASE定义后面,要不然pid会生成到/下面  
    4. CATALINA_PID="$CATALINA_BASE/tomcat.pid"  

    tomcat.pid文件与bin目录平级。

    2.创建tomcat.service文件

    /lib/systemd/system/tomcat.service 

    [java] view plain copy

    1. [Unit]  
    2. Description=Tomcat  
    3. After=syslog.target network.target remote-fs.target nss-lookup.target  
    4.   
    5. [Service]  
    6. Type=forking  
    7.   
    8. Environment="JAVA_HOME=/home/jdk/jdk1.7.0_79"  
    9.   
    10. PIDFile=/home/tomcat/apache-tomcat-7.0.47/tomcat.pid  
    11. ExecStart=/home/tomcat/apache-tomcat-7.0.47/bin/startup.sh  
    12. ExecReload=/bin/kill -s HUP $MAINPID  
    13. ExecStop=/bin/kill -s QUIT $MAINPID  
    14. PrivateTmp=true  
    15.   
    16. [Install]  
    17. WantedBy=multi-user.target  

    Environment="JAVA_HOME=/home/jdk/jdk1.7.0_79" 这里要配置环境变量,在/etc/profile中的配置在系统服务中不生效。

    3.设置为开机启动

    [java] view plain copy

    1. systemctl enable tomcat.service    

    4.其它

    修改tomcat.service文件后需要执行下面命令使其生效:
    systemctl daemon-reload

    查询tomcat 进程  ps -ef | grep "tomcat"| grep -v grep

    如果多个tomcat,则拷贝到不同的目录,使用不同的端口。tomcat.service文件名不同即可。

    例如:tomcat1.service tomcat2.service tomcat3.service

    启动tomcat服务

    systemctl start tomcat.service

    设置开机自启动

    systemctl enable tomcat.service

    停止开机自启动

    systemctl disable tomcat.service

    查看服务当前状态

    systemctl status tomcat.service

    重新启动服务

    systemctl restart tomcat.service

    查看所有已启动的服务

    systemctl list-units --type=service
  • 相关阅读:
    Linux五种IO模型
    怎样理解阻塞非阻塞与同步异步的区别?
    .NET 框架 (转载)
    数组 反转
    排序 归并排序&逆序对
    快速寻找满足条件的2个数
    数组 寻找最大的第k个数
    字符串 删除字符串开始以及末尾的空白符,并把数组中间的多个空格(如果有)符转换为1个
    排序 快速排序
    java8常用api
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13317433.html
Copyright © 2011-2022 走看看