#!/bin/bash
CURRDIR=`dirname "$0"`
BASEDIR=`cd "$CURRDIR"; pwd`
NAME="nginx"
CMD=/usr/local/nginx/sbin/nginx
if [ "$1" = "-d" ]; then
shift
EXECUTEDIR=$1'/'
shift
else
EXECUTEDIR=$BASEDIR'/'
fi
if [ ! -d "$EXECUTEDIR" ]; then
echo "ERROR: $EXECUTEDIR is not a dir"
exit
fi
if [ ! -d "$EXECUTEDIR"/conf ]; then
echo "ERROR: could not find $EXECUTEDIR/conf/"
exit
fi
if [ ! -d "$EXECUTEDIR"/logs ]; then
mkdir "$EXECUTEDIR"/logs
fi
cd "$EXECUTEDIR"
PID_FILE="$EXECUTEDIR"/logs/nginx.pd
check_pid() {
RETVAL=1
if [ -f $PID_FILE ]; then
PID=`cat $PID_FILE`
ls /proc/$PID &> /dev/null
if [ $? -eq 0 ]; then
RETVAL=0
fi
fi
}
check_running() {
PID=0
RETVAL=0
check_pid
if [ $RETVAL -eq 0 ]; then
echo "$CMD is running as $PID, we'll do nothing"
exit
fi
}
start() {
check_running
#echo "$CMD -c $EXECUTEDIR/conf/nginx.conf -p $EXECUTEDIR"
"$CMD" -c "$EXECUTEDIR/conf/nginx.conf" -p "$EXECUTEDIR"
}
stop() {
"$CMD" -c "$EXECUTEDIR/conf/nginx.conf" -p "$EXECUTEDIR" -s stop
}
status() {
check_pid
if [ $RETVAL -eq 0 ]; then
echo "nginx is running as $PID ..."
else
echo "nginx is not running"
fi
}
reload() {
"$CMD" -c "$EXECUTEDIR/conf/nginx.conf" -p "$EXECUTEDIR" -t
if [ $? -ne 0 ]; then
echo "test nginx conf fail. please check it first, we won't reload it"
exit 1
fi
"$CMD" -c "$EXECUTEDIR/conf/nginx.conf" -p "$EXECUTEDIR" -s reload
}
RETVAL=0
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status
;;
reload)
reload
;;
*)
echo "Usage: $0 {start|stop|restart|status|reload}"
RETVAL=1
esac
exit $RETVAL