Skip to content

Commit

Permalink
Create tomcat.md
Browse files Browse the repository at this point in the history
  • Loading branch information
hellokaton authored Jul 14, 2016
1 parent de3a5d2 commit f346a84
Showing 1 changed file with 163 additions and 0 deletions.
163 changes: 163 additions & 0 deletions shell/tomcat.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
```sh
#!/bin/bash
# author: Sean Chow ([email protected])
#
#
# chkconfig: 345 80 15
# description: use service tomcat xintr

# Source function library.
. /etc/rc.d/init.d/functions

# tomcat名字
tcName=tomcat-$1
basedir=/data/program/tomcat/$tcName
tclog=${basedir}/logs/catalina.out

RETVAL=0

start(){
checkrun
if [ $RETVAL -eq 0 ]; then
echo "###### Tomcat正在启动 ######"
$basedir/bin/startup.sh
touch /var/lock/subsys/${tcNo}
checklog
status
else
echo "###### Tomcat启动成功 ######"
fi
}

# 停止某一台tomcat,如果是重启则带re参数,表示不查看日志,等待启动时再提示查看
stop(){
checkrun
if [ $RETVAL -eq 1 ]; then
echo "###### Tomcat正在关闭 ######"
$basedir/bin/shutdown.sh
if [ "$1" != "re" ]; then
checklog
else
sleep 5
fi
rm -f /var/lock/subsys/${tcNo}
status
else
echo "###### Tomcat关闭成功 ######"
fi
}

status(){
checkrun
if [ $RETVAL -eq 1 ]; then
echo -n "-- Tomcat ( pid "
ps ax --width=1000 |grep ${tcName}|grep "org.apache.catalina.startup.Bootstrap start" | awk '{printf $1 " "}'
echo -n ") 正在运行"
echo
else
echo "-- Tomcat 停止运行"
fi
#echo "---------------------------------------------"
}

# 查看tomcat日志,带vl参数
log(){
status
checklog yes
}

# 如果tomcat正在运行,强行杀死tomcat进程,关闭tomcat
kill(){
checkrun
if [ $RETVAL -eq 1 ]; then
read -p "-- 确定要杀死 ${tcName} 的进程吗?[no])" answer
case $answer in
Y|y|YES|yes|Yes)
ps ax --width=1000 |grep ${tcName}|grep "org.apache.catalina.startup.Bootstrap start" | awk '{printf $1 " "}'|xargs kill -9
status
;;
*);;
esac
else
echo "-- exit with $tcName still running..."
fi
}


checkrun(){
ps ax --width=1000 |grep ${tcName}| grep "[o]rg.apache.catalina.startup.Bootstrap start" | awk '{printf $1 " "}' | wc | awk '{print $2}' >/tmp/tomcat_process_count.txt
read line < /tmp/tomcat_process_count.txt
if [ $line -gt 0 ]; then
RETVAL=1
return $RETVAL
else
RETVAL=0
return $RETVAL
fi
}

# 如果是直接查看日志viewlog,则不提示输入[yes],否则就是被stop和start调用,需提示是否查看日志
checklog(){
answer=$1
if [ "$answer" != "yes" ]; then
read -p "-- 查看 catalina.out 日志吗 $2 status?[yes])" answer
fi
case $answer in
Y|y|YES|yes|Yes|"")
tail -f ${tclog}
;;
*)
# status
# exit 0
;;
esac
}
checkexist(){
if [ ! -d $basedir ]; then
echo "-- tomcat $basedir does not exist."
exit 0
fi
}


case "$2" in
start)
checkexist
start
exit 0
;;
stop)
checkexist
stop
exit 0
;;
restart)
checkexist
stop re
start
exit 0
;;
status)
checkexist
status
#$basedir/bin/catalina.sh version
exit 0
;;
log)
checkexist
log
exit 0
;;
kill)
checkexist
status
kill
exit 0
;;
*)
echo "使用方法: service $0 [start|stop|restart|status|log|kill]"
echo "举个栗子-> service tomcat xintr start"
esac

exit 0
```

0 comments on commit f346a84

Please sign in to comment.