]> git.pld-linux.org Git - packages/lighttpd.git/blobdiff - lighttpd.init
- make optional lighttpd-angel support (supervisor and HUP handler)
[packages/lighttpd.git] / lighttpd.init
index f855d78c61ff6d9c7053fb1075466cf2f97fa79d..43c195418ac58e2c37ace894a3dcc29e115537ed 100644 (file)
@@ -68,7 +68,13 @@ start() {
 
        checkconfig
        msg_starting "Lighttpd Web Server"; busy
-       env SHELL=/bin/sh lighttpd -f /etc/lighttpd/lighttpd.conf $HTTPD_OPTS
+       if is_yes "${LIGHT_ANGEL}"; then
+               daemon --fork --pidfile /var/run/lighttpd-angel.pid --makepid \
+                       env SHELL=/bin/sh lighttpd-angel -D -f /etc/lighttpd/lighttpd.conf $HTTPD_OPTS 1>&2
+
+       else
+               env SHELL=/bin/sh lighttpd -f /etc/lighttpd/lighttpd.conf $HTTPD_OPTS
+       fi
        RETVAL=$?
        if [ $RETVAL -eq 0 ]; then
                ok
@@ -88,15 +94,23 @@ stop() {
        msg_stopping "Lighttpd Web Server"
        killproc --pidfile /var/run/lighttpd.pid lighttpd
        rm -f /var/lock/subsys/lighttpd >/dev/null 2>&1
+       rm -f /var/run/lighttpd*.pid >/dev/null 2>&1
 }
 
 restart() {
        local pid
 
        # short circuit to safe reload if pid exists and is alive
-       if [ -f /var/lock/subsys/lighttpd ] && pid=$(pidofproc lighttpd lighttpd.pid) && checkpid $pid; then
-               reload
-               return
+       if is_yes "${LIGHT_ANGEL}"; then
+               if [ -f /var/lock/subsys/lighttpd ] && pid=$(pidofproc lighttpd-angel lighttpd-angel.pid) && checkpid $pid; then
+                       reload
+                       return
+               fi
+       else
+               if [ -f /var/lock/subsys/lighttpd ] && pid=$(pidofproc lighttpd lighttpd.pid) && checkpid $pid; then
+                       reload
+                       return
+               fi
        fi
 
        checkconfig
@@ -105,6 +119,7 @@ restart() {
 }
 
 reload() {
+       # TODO: check if process is running. Start it in this case.
        if [ ! -f /var/lock/subsys/lighttpd ]; then
                msg_not_running "Lighttpd Web Server"
                RETVAL=7
@@ -114,10 +129,17 @@ reload() {
        checkconfig
        msg_reloading "Lighttpd Web Server"
 
-       # sending INT signal will make lighttpd close all listening sockets and
-       # wait for client connections to terminate.
-       killproc --pidfile /var/run/lighttpd.pid lighttpd -INT
-       env SHELL=/bin/sh lighttpd -f /etc/lighttpd/lighttpd.conf $HTTPD_OPTS
+       if is_yes "${LIGHT_ANGEL}"; then
+               # sending HUP signal to angel will make lighttpd close all listening
+               # sockets and wait for client connections to terminate. After that new
+               # child will be started
+               killproc lighttpd-angel -HUP
+       else
+               # sending INT signal will make lighttpd close all listening sockets and
+               # wait for client connections to terminate.
+               killproc --pidfile /var/run/lighttpd.pid lighttpd -INT
+               env SHELL=/bin/sh lighttpd -f /etc/lighttpd/lighttpd.conf $HTTPD_OPTS
+       fi
        RETVAL=$?
 }
 
@@ -141,6 +163,7 @@ flush-logs() {
        fi
 
        show "Rotating %s logs" lighttpd
+       # send HUP to main lighttpd (not angel) process to rotate logs:
        killproc --pidfile /var/run/lighttpd.pid lighttpd -HUP
        RETVAL=$?
 }
@@ -170,6 +193,7 @@ case "$1" in
        checkconfig 1
        ;;
   status)
+       status lighttpd-angel
        status lighttpd
        RETVAL=$?
        ;;
This page took 0.031624 seconds and 4 git commands to generate.