-
写一个tomcat的启动脚本并不是多么困难的实情,网上很多脚本基本功能都能实现,但是其实并不完善。
-
之所以想写这个脚本是因为大家在写脚本的时候使用的方法太“笨”,比如去查找某进程PID大家一般都会通过ps -ef配合grep去实现,但是大家并不知道可以用pidof和pgrep来查找进程的PID。
-
还有程序的启动、停止、状态查看都可以用系统的functions函数来实现,我们要做的只是简单的调用就OK。
-
所以系统的functions(/etc/init.d/functions)很重要,大家都应该去熟悉了解它。
#!/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 #调用系统函数
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
网友评论