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