diff options
Diffstat (limited to 'src/nginx/rc.d')
-rwxr-xr-x | src/nginx/rc.d | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/src/nginx/rc.d b/src/nginx/rc.d new file mode 100755 index 0000000..eb9031e --- /dev/null +++ b/src/nginx/rc.d @@ -0,0 +1,68 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +function check_config { + stat_busy "Checking nginx configuration" + /usr/sbin/nginx -t -q -c /etc/nginx/nginx.conf + if [ $? -ne 0 ]; then + stat_die + else + stat_done + fi +} + +case "$1" in + start) + check_config + $0 careless_start + ;; + careless_start) + stat_busy "Starting nginx" + if [ -s /var/run/nginx.pid ]; then + stat_fail + # probably ;) + stat_busy "Nginx is already running" + stat_die + fi + /usr/sbin/nginx -c /etc/nginx/nginx.conf &>/dev/null + if [ $? -ne 0 ]; then + stat_fail + else + add_daemon nginx + stat_done + fi + ;; + stop) + stat_busy "Stopping nginx" + PID=$(cat /var/run/nginx.pid) + kill -QUIT $PID &>/dev/null + if [ $? -ne 0 ]; then + stat_fail + else + for i in {1..10}; do + [ -d /proc/$PID ] || { stat_done; rm_daemon nginx; exit 0; } + sleep 1 + done + stat_fail + fi + ;; + restart) + check_config + $0 stop + sleep 1 + $0 careless_start + ;; + reload) + check_config + if [ -s /var/run/nginx.pid ]; then + status "Reloading nginx configuration" kill -HUP $(cat /var/run/nginx.pid) + fi + ;; + check) + check_config + ;; + *) + echo "usage: $0 {start|stop|restart|reload|check|careless_start}" +esac |