--测试通过

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."

最新文章

  1. Guava Supplier实例
  2. glusterFS系统中文管理手册(转载)
  3. MVC中Control和View之间数据传递的方式
  4. Ubuntu Server安装R和Rstudio(zz)
  5. 【干货理解】理解javascript中实现MVC的原理
  6. 2016"百度之星"-资格赛
  7. 使用命令参数方式指定log4j配置文件
  8. [c++]堆和栈的区别
  9. [LeetCode 122] - 买入与卖出股票的最佳时机II(Best Time to Buy and Sell Stock II)
  10. CentOS6.5 --安装orale 11g(上)
  11. UIImageView 一些属性设置
  12. 将数组适配到ListView
  13. ImageButton消除使用setImageDrawable造成的边框问题。
  14. cocos2dx - android环境配置及编译
  15. WPF中查看PDF文件之MoonPdfLib类库
  16. 【AtCoder3611】Tree MST(点分治,最小生成树)
  17. Vue项目实践中的功能实现与要点
  18. HDU 1873 看病要排队 优先队列
  19. centos7搭建Gitlab服务器
  20. 在iOS中将string转成UTF-8编码

热门文章

  1. Anaconda基础使用
  2. Go语言实现简单的TCP、UDP链接
  3. Entity Framework的一个坑
  4. seaborn模块的基本使用
  5. Win10开启FTP与配置——(亲测完整无错版)
  6. Spring核心概念和案例
  7. 把hdfs数据写入到hbase表
  8. 学到了林海峰,武沛齐讲的Day21-完 模块和包
  9. P2037 电话号码
  10. [转]C++ 类中的static成员的初始化和特点