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

  • 相关阅读:
    【ANT】时间戳
    【ANT】java项目生成文件示例
    【ANT】description元素和属性
    【ANT】一个简单的ANT生成文件build.xml
    JMeter循环控制器循环次数使用变量控制注意事项
    JMeter获取CSV文件行数
    JMeter执行顺序
    JMeter脚本java代码String数组要写成String[] args,不能写成String args[],否则报错。
    1-眼界与思维
    19-python 自己建立词库并实现文章汉语词频统计
  • 原文地址:https://www.cnblogs.com/zhoading/p/11685288.html
Copyright © 2011-2022 走看看