Tomcat重启Shell脚本

    Web项目在使用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即可。


  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值