Skip to content

Instantly share code, notes, and snippets.

@mdominiak
Created November 22, 2010 13:07

Revisions

  1. mdominiak created this gist Nov 22, 2010.
    83 changes: 83 additions & 0 deletions nginx
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,83 @@
    #! /bin/sh

    ### BEGIN INIT INFO
    # Provides: nginx
    # Required-Start: $local_fs $remote_fs $network $syslog
    # Required-Stop: $local_fs $remote_fs $network $syslog
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Short-Description: starts the nginx web server
    # Description: starts nginx using start-stop-daemon
    ### END INIT INFO

    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    DAEMON=/opt/nginx/sbin/nginx
    NAME=nginx
    DESC=nginx

    test -x $DAEMON || exit 0

    set -e

    . /lib/lsb/init-functions

    test_nginx_config() {
    if $DAEMON -t $DAEMON_OPTS >/dev/null 2>&1
    then
    return 0
    else
    $DAEMON -t $DAEMON_OPTS
    return $?
    fi
    }

    case "$1" in
    start)
    echo -n "Starting $DESC: "
    test_nginx_config
    start-stop-daemon --start --quiet --pidfile /opt/nginx/logs/$NAME.pid \
    --exec $DAEMON -- $DAEMON_OPTS || true
    echo "$NAME."
    ;;
    stop)
    echo -n "Stopping $DESC: "
    start-stop-daemon --stop --quiet --pidfile /opt/nginx/logs/$NAME.pid \
    --exec $DAEMON || true
    echo "$NAME."
    ;;
    restart|force-reload)
    echo -n "Restarting $DESC: "
    start-stop-daemon --stop --quiet --pidfile \
    /opt/nginx/logs/$NAME.pid --exec $DAEMON || true
    sleep 1
    test_nginx_config
    start-stop-daemon --start --quiet --pidfile \
    /opt/nginx/logs/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS || true
    echo "$NAME."
    ;;
    reload)
    echo -n "Reloading $DESC configuration: "
    test_nginx_config
    start-stop-daemon --stop --signal HUP --quiet --pidfile /opt/nginx/logs/$NAME.pid \
    --exec $DAEMON || true
    echo "$NAME."
    ;;
    configtest)
    echo -n "Testing $DESC configuration: "
    if test_nginx_config
    then
    echo "$NAME."
    else
    exit $?
    fi
    ;;
    status)
    status_of_proc -p /opt/nginx/logs/$NAME.pid "$DAEMON" nginx && exit 0 || exit $?
    ;;
    *)
    echo "Usage: $NAME {start|stop|restart|reload|force-reload|status|configtest}" >&2
    exit 1
    ;;
    esac

    exit 0