#!/bin/bash
#tomcat path
tomcat_home=/tomcat/tomcat1
start_tomcat=$tomcat_home/bin/startup.sh
#select which web to restart
echo "0 : exit"
echo "1 : /tomcat/tomcat1"
echo "2 : /tomcat/tomcat2"
read -p "please select the web to restart:" selectWeb
case $selectWeb in
1)
tomcat_home=/tomcat/tomcat1
;;
2)
tomcat_home=/tomcat/tomcat2
;;
*)
exit 0
;;
esac
#echo $tomcat_home
#show web pid info
echo "---------------------------------------------------------------------------"
ps -ef|grep ${tomcat_home}|grep -v grep
echo "---------------------------------------------------------------------------"
#get web pids
#pid=`ps -ef|grep $tomcat_home|grep -v grep|awk '{print $2}'`
pid=$(ps -ef|grep $tomcat_home|grep -v grep|awk '{print $2}')
#echo ${#pid[@]}
if [ "${pid[0]}" = "" ]
then
echo "the web is not running,please execute startup.sh"
exit 0
fi
#confirm kill pid
echo -ne "CONFIRM : before start ${tomcat_home},should kill the same run,kill pid "${pid[*]}" (y/n)?"
read confirmInput
case $confirmInput in
[yY][eE][sS]|[yY])
##杀死进程
kill -9 ${pid[*]}
##删除应用临时数据
rm -rf $tomcat_home/work/Catalina/localhost/*
##倒计时5秒钟
seconds_left=5
echo "please wait ${seconds_left} seconds......"
while [ ${seconds_left} -gt 0 ]; do
echo -n "-------------------------------------${seconds_left}-------------------------------------"
sleep 1
seconds_left=$(($seconds_left - 1))
echo -ne "\r \r"
done
##重启tomcat应用,使用nohup,否则退出ssh的时候,应用的进程会被杀掉
#restart tomcat
nohup ${start_tomcat} >> $tomcat_home/logs/catalina.out 2>&1 &
#nohup ${start_tomcat}&
#show catalina.out logs
tail -f $tomcat_home/logs/catalina.out
;;
##脚本执行的最后,打开的是监控日志catalina.out,这个时候要使用ctrl+c退出,不能使用ctrl+z退
##出,否则会有问题,直到tail -f xxxx/catalina.out进程被杀掉
*)
echo "restart ${tomcat_home} is canceled"
;;
esac
Shell脚本重启tomcat应用服务
猜你喜欢
转载自blog.csdn.net/ystyaoshengting/article/details/82421310
今日推荐
周排行