#!/bin/bash # # chkconfig: 2345 99 15 # description: Fast web-server and reverse proxy # processname: /usr/sbin/nginx # pidfile: /var/run/nginx.pid # source function library WITHOUT_RC_COMPAT=1 . /etc/init.d/functions LOCKFILE=/var/lock/nginx/nginx PIDFILE=/var/run/nginx.pid RETVAL=0 start() { mkdir -p /var/lock/nginx mkdir -p /var/run/nginx chown _nginx:_nginx /var/run/nginx /var/lock/nginx chmod 700 /var/run/nginx /var/lock/nginx # nginx can work with many files at one time ulimit -n 16384 start_daemon --lockfile "$LOCKFILE" --expect-user _nginx -- nginx RETVAL=$? return $RETVAL } stop() { stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user root --name nginx -- nginx RETVAL=$? return $RETVAL rm -f $PIDFILE } restart() { # start _new_ nginx binary # !!! warning !!! when ser rtsig, it may not working # msg_reloading nginx # stop_daemon --expect-user root -USR2 -- nginx stop start RETVAL=$? return $RETVAL } reload() { msg_reloading nginx stop_daemon --expect-user root -HUP -- nginx RETVAL=$? return $RETVAL } # See how we were called. case "$1" in start) start ;; stop) stop ;; reload) reload ;; restart) restart ;; condstop) if [ -e "$LOCKFILE" ]; then stop fi ;; condrestart) if [ -e "$LOCKFILE" ]; then restart fi ;; condreload) if [ -e "$LOCKFILE" ]; then reload fi ;; status) status --lockfile "$LOCKFILE" --pidfile "$PIDFILE" --expect-user root --name nginx -- nginx RETVAL=$? ;; *) msg_usage "nginx {start|stop|reload|restart|condstop|condrestart|condreload|status}" RETVAL=1 esac exit $RETVAL