zoukankan      html  css  js  c++  java
  • tomcat的systemctl启动脚本

    最近在做Tomcat的实验,顺便研究了一下tomcat的启动脚本发现一个问题,然后经过多方查阅其他大神的资料,终于解决,现在跟大家分享。

    tomcat的启动脚本跟别的脚本有稍微区别的原因是他需要识别JAVA_HOME环境,你仅仅是写到/etc/profile文件中是不行的。

    在启动的时候会报错,我们通过查询错误信息,显示如下信息内容

    startup.sh[14716]: Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
    

      明明定义了JAVA_HOME为什么显示没有JAVA_HOME呢?

    因为tomcat自带的startup.sh脚本。调用的是catalina.sh脚本,然后catalina.sh脚本识别的是catalina.bat中的JAVA_HOME环境

    所以我们可以直接在catalina.bat中添加JAVA_HOME,但是我觉得都已经写了启动脚本,还需要去别的地方改,这样的话,反而没有service的脚本方便,

    然后查了资料发现。可以在systemctl脚奔模块中添加一个Environment来导入JAVA_HOME,下面将我写的tomcat的启动脚本分享给大家。

    vim /usr/lib/systemd/system/tomcat.service
      [Unit]   Description=Tomcat   After=network.target   [Service]   Type=forking   Environment="JAVA_HOME=/usr/local/java" //tomcat启用时需要识别JAVA_HOME   ExecStart=/usr/local/tomcat/bin/startup.sh   ExecStop=/usr/local/tomcat/bin/shutdown.sh   [Install]   WantedBy=multi-user.target

    chmod 600 /usr/lib/systemd/system/tomcat.service

      

    systemctl daemon-reload
    systemctl start tomcat
    

      此时tomcat即可正常启动

    附加说明一点

      因为shutdown.sh脚本通过tomcat的8005号端口关闭tomcat,如果你的熵池比较小的话,那么你在启动tomcat的时候,可能需要一段时间才可以

    完全启用到,可以通过查询端口,来查看tomcat有没有完全启动

    ss -antp | grep java
    

      增加熵池大小的话,可以参考我的另外一篇文章,tomcat启用是为什么8005端口没有被占用

    最后,在赠送一个tomcat的service的启用脚本

    vim /etc/init.d/tomcat
    #!/bin/bash
    #chkconfig: 2345 96 14
    export JAVA_HOME=/usr/local/java
    export CATALINA_HOME=/usr/local/tomcat
    exec $CATALINA_HOME/bin/catalina.sh $*
    

      

    [root@tomcat ~]# chmod +x /etc/init.d/tomcat
    [root@tomcat ~]# chkconfig --add tomcat
    [root@tomcat ~]# chkconfig tomcat on
    

      

    如果有什么错误,或者问题,欢迎评论讨论

  • 相关阅读:
    python学习-装饰器
    python-内置函数
    HA高可用解决方案-RHCS部署
    mac安装nose,command not found:nosetests
    iPhone的home键进果汁了,按起来粘粘的感觉
    Reportng 的测试报告在 Jenkins 中显示不全
    atom markdown报错:AssertionError: html-pdf: Failed to load PhantomJS module.
    markdown的图片外链
    reportng定制修改
    运行maven build报错No goals have been specified for this build.
  • 原文地址:https://www.cnblogs.com/xll970105/p/9820460.html
Copyright © 2011-2022 走看看