zoukankan      html  css  js  c++  java
  • [ 手记 ] 关于tomcat开机启动设置问题

      今天尝试将tomcat设置为开机启动,大家都知道只需要将启动脚本添加到/etc/rc.local下面开机就会自动执行。

    /usr/local/tomcat8.0/bin/startup.sh >> /etc/rc.local

      重启机器,进行测试。结果未能如愿。这是为什么呢?开始排查。手动执行没有报错。于是开始查看日志。

    [root@server2 ~]# tail /var/log/boot.log 
    Starting nginx:                                            [  OK  ]
    Starting crond:                                            [  OK  ]
    Starting atd:                                              [  OK  ]
    Starting certmonger:                                       [  OK  ]
    Using CATALINA_BASE:   /usr/local/tomcat8.0
    Using CATALINA_HOME:   /usr/local/tomcat8.0
    Using CATALINA_TMPDIR: /usr/local/tomcat8.0/temp
    Using JRE_HOME:        /usr
    Using CLASSPATH:       /usr/local/tomcat8.0/bin/bootstrap.jar:/usr/local/tomcat8.0/bin/tomcat-juli.jar
    Tomcat started.

      发现日志里tomcat启动也没有异常,这下就非常疑惑了。

      回想下开机顺序: /sbin/init --> /etc/inittab --> /etc/rc.d/rc.sysinit --> /etc/rc.d/* --> /etc/rc.local --> login界面(username/passwd) --> /etc/profile.d/file --> /etc/profile

      rc.local 在 profile 前面执行,而jdk相关环境变量却在 profile 里。想要解决这个问题就需要在 tomcat脚本启动前就执行/etc/profile 才行。

    [root@server2 ~]# vim /etc/rc.local 
    
    #!/bin/sh
    #
    # This script will be executed *after* all the other init scripts.
    # You can put your own initialization stuff in here if you don't
    # want to do the full Sys V style init stuff.
    
    touch /var/lock/subsys/local
    source /etc/profile  # 执行下 /etc/profile
    /usr/local/tomcat8.0/bin/startup.sh
    echo "tomcat test."

      再次重启机器测试。

    [root@server2 ~]# tail /var/log/boot.log 
    Starting crond:                                            [  OK  ]
    Starting atd:                                              [  OK  ]
    Starting certmonger:                                       [  OK  ]
    Using CATALINA_BASE:   /usr/local/tomcat8.0
    Using CATALINA_HOME:   /usr/local/tomcat8.0
    Using CATALINA_TMPDIR: /usr/local/tomcat8.0/temp
    Using JRE_HOME:        /usr/local/jdk1.8
    Using CLASSPATH:       /usr/local/tomcat8.0/bin/bootstrap.jar:/usr/local/tomcat8.0/bin/tomcat-juli.jar
    Tomcat started.
    tomcat test.

      日志OK。

    [root@server2 ~]# netstat -ntplu | grep 8080
    tcp        0      0 0.0.0.0:8080                0.0.0.0:*                   LISTEN      1590/java 

      服务也OK.

      这样的问题在以后可能也会遇到。可见,基础的原理和知识对解决问题有多重要。Linux开机执行文件的顺序一定要牢记。

  • 相关阅读:
    Asp.net中导出Excel文档(Gridview)
    以太坊难度炸弹是什么?极大抑制矿工继续以POW方式挖矿!
    Solidity语言基础 和 Etherum ERC20合约基础
    BCH/BSV coin split troubleshooting
    比特币学习-Transaction的locktime属性
    在BCH硬分叉后防止重放攻击-2
    在BCH硬分叉后防止重放攻击-1
    区块链硬分叉-软分叉简单了解
    BTC和BCH 区别和联系?
    BCHABC/BCHSV的矛盾所在
  • 原文地址:https://www.cnblogs.com/hukey/p/5370176.html
Copyright © 2011-2022 走看看