寫一個(gè)tomcat的啟動腳本并不是多么困難的實(shí)情,網(wǎng)上很多腳本基本功能都能實(shí)現(xiàn)张抄,但是其實(shí)并不完善孤页。
之所以想寫這個(gè)腳本是因?yàn)榇蠹以趯懩_本的時(shí)候使用的方法太“笨”丛晦,比如去查找某進(jìn)程PID大家一般都會通過ps -ef配合grep去實(shí)現(xiàn)巨缘,但是大家并不知道可以用pidof和pgrep來查找進(jìn)程的PID。
還有程序的啟動采呐、停止、狀態(tài)查看都可以用系統(tǒng)的functions函數(shù)來實(shí)現(xiàn)搁骑,我們要做的只是簡單的調(diào)用就OK斧吐。
所以系統(tǒng)的functions(/etc/init.d/functions)很重要,大家都應(yīng)該去熟悉了解它仲器。
#!/bin/sh
#create at 2016-08-23
#author billy
#qq 5884628
# chkconfig: 2345 31 61
# description: this is tomcat start scprits
prog="tomcat-pc"
BASE_DIR=/application/$prog
START="$BASE_DIR/bin/startup.sh"
SHUTDOWN=$BASE_DIR/bin/shutdown.sh
. /etc/init.d/functions #調(diào)用系統(tǒng)函數(shù)
RETVAL=0
uid=`id | cut -d\( -f1 | cut -d= -f2`
start() {
# Only root can start the service
[ $uid -ne 0 ] && exit 4
if status $prog > /dev/null ; then #查看status
exit 0
fi
daemon --user=tomcat "$START >/dev/null 2>&1" #使用daemon以tomcat用戶啟動
echo $"Starting $prog: "
RETVAL=$?
if [ $RETVAL -eq 0 ] ; then
touch /var/lock/subsys/$prog
[ ! -f /var/run/${prog}.pid ] &&
/usr/bin/pgrep -f "$prog/conf" > /var/run/${prog}.pid
fi
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
#kill -9 `cat /var/run/${prog}.pid`
killproc $prog
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && {
rm -f /var/lock/subsys/$prog
rm -f /var/run/${prog}.pid
}
return $RETVAL
}
case $1 in
start)
start
RETVAL=$?
;;
stop)
stop
RETVAL=$?
;;
restart|reload)
stop
start
RETVAL=$?
;;
status)
status $prog
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|status|restart|reload}"
RETVAL=2
;;
esac