100例shell脚本之七

nginx服务脚本


#! /bin/sh

# chkconfig: 2345 55 25


NGINX_BIN='/usr/local/nginx/sbin/nginx'

CONFIG='/usr/local/nginx/conf/nginx.conf'


case "$1" in

    start)

        echo -n "Starting nginx... "


        PID=$(ps -ef | grep "$NGINX_BIN" | grep -v grep | awk '{print $2}')

        if [ "$PID" != "" ]; then

            echo "nginx (pid $PID) already running."

            exit 1

        fi


        $NGINX_BIN -c $CONFIG


        if [ "$?" != 0 ]; then

            echo " failed"

            exit 1

        else

            echo " done"

        fi

        ;;


    stop)

        echo -n "Stoping nginx... "


        PID=$(ps -ef | grep "$NGINX_BIN" | grep -v grep | awk '{print $2}')

        if [ "$PID" = "" ]; then

            echo "nginx is not running."

            exit 1

        fi


        $NGINX_BIN -s stop


        if [ "$?" != 0 ] ; then

            echo " failed. Use force-quit"

            $0 force-quit

        else

            echo " done"

        fi

        ;;


    status)

        PID=$(ps -ef | grep "$NGINX_BIN" | grep -v grep | awk '{print $2}')

        if [ "$PID" != "" ]; then

            echo "nginx (pid $PID) is running..."

        else

            echo "nginx is stopped."

            exit 0

        fi

        ;;


    force-quit|kill)

        echo -n "Terminating nginx... "


        PID=$(ps -ef | grep "$NGINX_BIN" | grep -v grep | awk '{print $2}')

        if [ "$PID" = "" ]; then

            echo "nginx is is stopped."

            exit 1

        fi


        kill $PID


        if [ "$?" != 0 ]; then

            echo " failed"

            exit 1

        else

            echo " done"

        fi

        ;;


    restart)

        $0 stop

        sleep 1

        $0 start

        ;;


    reload)

        echo -n "Reload nginx... "


        PID=$(ps -ef | grep "$NGINX_BIN" | grep -v grep | awk '{print $2}')

        if [ "$PID" != "" ]; then

            $NGINX_BIN -s reload

            echo " done"

        else

            echo "nginx is not running, can't reload."

            exit 1

        fi

        ;;


    configtest)

        echo -n "Test nginx configure files... "


        $NGINX_BIN -t

        ;;


    *)

        echo "Usage: $0 {start|stop|restart|reload|status|configtest|force-quit|kill}"

        exit 1

        ;;


总结:主要考察的是

  1. 服务脚本的编写

  2. case条件语句的编写


猜你喜欢

转载自blog.51cto.com/9447803/2405776