清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
#! /bin/sh
# chkconfig: 35 96 04
# description: Apache-Tomcat service script.
# Version:
# 2008-01-17-01
# By:
# Typhoon.Free.Wolf.
# Service name.
SVC_NAME="Apache-Tomcat"
# Lock file.
LOCK_FILE="/var/lock/subsys/tfw_tomcat"
# Installation prefix.
APP_HOME="/ext/usr/prog/Tomcat"
# The process name to monitor.
APP_PROC="java"
# Authorize user.
APP_USER="tomcat_user"
SLEEP_START=5
SLEEP_STOP=$SLEEP_START
# Importing functions.
flg_func=0
if [ -f /etc/init.d/functions ] ; then
. /etc/init.d/functions
flg_func=1
elif [ -f /etc/rc.d/init.d/functions ] ; then
. /etc/rc.d/init.d/functions
flg_func=1
fi
# Templete.
# Return:
# FLG_PROC_ON means process is there.
# FLG_PROC_OFF means process not exists.
# Other means error.
FLG_PROC_ON=1
FLG_PROC_OFF=0
probe() {
srch_rst=$(ps -A|grep $APP_PROC|awk '{print $4}')
for rst in $srch_rst ; do
if [ $APP_PROC = $rst ] ; then
return $FLG_PROC_ON
fi
done
return $FLG_PROC_OFF
}
# Templete.
# Shows OK.
# Return:
echo_ok() {
case $flg_func in
1)
echo_success
echo ""
;;
*)
echo ""
echo " [ OK ]"
;;
esac
}
# Templete.
# Shows Passed.
# Return:
echo_pass() {
case $flg_func in
1)
echo_passed
echo ""
;;
*)
echo ""
echo " [PASSED]"
;;
esac
}
# Templete.
# Shows Failed.
# Return:
echo_bad() {
case $flg_func in
1)
echo_failure
echo ""
;;
*)
echo ""
echo " [FAILED]"
;;
esac
}
# Templete.
# Start section.
# Return:
_start() {
probe
proc=$?
echo ""
echo "Starting $SVC_NAME..."
if (touch $LOCK_FILE) ; then
echo_ok
else
echo_bad
fi
}
start() {
probe
proc=$?
echo ""
echo "Starting $SVC_NAME..."
if [ $FLG_PROC_OFF = $proc ] ; then
if (su - $APP_USER -c "$APP_HOME/bin/startup.sh") ; then
sleep $SLEEP_START
if (touch $LOCK_FILE) ; then
echo_ok
else
echo_pass
echo ""
fi
else
echo_bad
fi
elif [ $FLG_PROC_ON = $proc ] ; then
if (touch $LOCK_FILE) ; then
echo_passed
echo ""
else
echo_bad
fi
fi
}
# Templete.
# Stop section.
# Return:
_stop() {
probe
proc=$?
echo ""
echo "Stopping $SVC_NAME..."
if (rm -Rf $LOCK_FILE) ; then
echo_ok
else
echo_bad
fi
}
stop() {
probe
proc=$?
echo ""
echo "Stopping $SVC_NAME..."
if [ $FLG_PROC_OFF = $proc ] ; then
if (rm -Rf $LOCK_FILE) ; then
echo_passed
echo ""
else
echo_bad
fi
elif [ $FLG_PROC_ON = $proc ] ; then
if (su - $APP_USER -c "$APP_HOME/bin/shutdown.sh") ; then
sleep $SLEEP_STOP
if (rm -Rf $LOCK_FILE) ; then
echo_ok
else
echo_pass
echo ""
fi
else
echo_bad
fi
fi
}
# Parse command line parameters.
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
# Print help
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit 0