zoukankan      html  css  js  c++  java
  • Tomcat重启Shell脚本

    --测试通过

    vim restart_tomcat.sh
    #!/bin/bash
    # Filename: restart_tomcat.sh
    # Description: Restart tomcat
    # Date: 2017-02-06
    # Author: songwj
    # Version: v1.0

    export LANG=zh_CN.UTF-8
    export JAVA_HOME=/usr/java/jdk1.7.0_79
    export JRE_HOME=$JAVA_HOME/jre
    export CATALINA_BASE=/usr/local/apache-tomcat-7.0.79
    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$CATALINA_BASE/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

    echo "[$(date +'%F %T')] >>> Tomcat begin to restart."
    $CATALINA_BASE/bin/shutdown.sh

    # Kill all remaining processes
    pidList=$(ps aux | grep $CATALINA_BASE | grep -v grep | awk '{print $2}')
    for pid in $pidList; do
    kill -9 $pid
    echo "[$(date +'%F %T')] >>> Kill the process [$pid] successfully."
    done

    $CATALINA_BASE/bin/startup.sh
    echo "[$(date +'%F %T')] >>> Tomcat restart complete."
        注意:直接使用tomcat中的shutdown.sh命令关闭tomcat服务时,往往无法正常关闭所有服务,会有残留进程没有正常关闭,久而久之,残留进程会侵占越来越多的系统资源,甚至重启后都无法正常访问项目,所以每次在执行完shutdown.sh命令后,需杀死残留进程,然后再重启服务,这点非常重要。

    1. 问题:手动调用Shell重启脚本项目运行正常,但使用crontab定时调用时项目重启访问出现中文乱码?
        解决方法:因为crontab调用脚本的运行环境和直接手动调用脚本的运行环境不同,所以在脚本中需指明所调用的环境,而且所调用的环境尽量写成绝对路径,避免出现不必要麻烦。此处使用crontab重启出现乱码,可以查看下正常环境中所使用的编码环境,经查为zh_CN.UTF-8,则在脚本中明确声明export LANG=zh_CN.UTF-8即可。

    ------------------------------------------------------------------------------

    --测试通过

    #!/bin/bash
    #Filename:restart_tomcat.sh
    # Description: Restart tomcat
    # Date: 2017-02-06
    # Author: songwj
    # Version: v1.0

    export LANG=zh_CN.UTF-8
    export JAVA_HOME=/java/jdk1.8.0_91
    export JRE_HOME=$JAVA_HOME/jre
    export CATALINA_BASE=/java/apache-tomcat-9.0.24
    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$CATALINA_BASE/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

    echo "[$(date +'%F %T')] >>> Tomcat begin to restart."
    $CATALINA_BASE/bin/shutdown.sh

    # Kill all remaining processes
    pidList=$(ps aux | grep $CATALINA_BASE | grep -v grep | awk '{print $2}')
    for pid in $pidList; do
    kill -9 $pid
    echo "[$(date +'%F %T')] >>> Kill the process [$pid] successfully."
    done

    $CATALINA_BASE/bin/startup.sh
    echo "[$(date +'%F %T')] >>> Tomcat restart complete."

    -----------------------------------------------------------------------------

    https://blog.csdn.net/hpf247/article/details/79190600

    在Linux系统下运行.sh文件有两种方法,比如我在root目录下有个datelog.sh文件

    第一种(这种办法需要用chmod使得文件具备执行条件(x): chmod u+x datelog.sh):

    1、在任何路径下,输入该文件的绝对路径/root/datelog.sh就可执行该文件(当然要在权限允许情况下)

    2、cd到datelog.sh文件的目录下,然后执行./datelog.sh

    第二种(这种办法不需要文件具备可执行的权限也可运行):

    1、在该文件路径下sh加上文件名字即可,sh datelog.sh


    2、在任意路径下,sh 加上文件路径及文件名称:sh /root/ datelog.sh


    ————————————————
    版权声明:本文为CSDN博主「鹤影随行」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/hpf247/java/article/details/79190600

  • 相关阅读:
    JDBC 查询的三大参数 setFetchSize prepareStatement(String sql, int resultSetType, int resultSetConcur)
    有空必看
    SpringMVC 利用AbstractRoutingDataSource实现动态数据源切换
    FusionCharts JavaScript API Column 3D Chart
    FusionCharts JavaScript API
    FusionCharts JavaScript API
    Extjs 继承Ext.Component自定义组件
    eclipse 彻底修改复制后的项目名称
    spring 转换器和格式化
    Eclipse快速生成一个JavaBean类的方法
  • 原文地址:https://www.cnblogs.com/zhoading/p/11685288.html
Copyright © 2011-2022 走看看