From 70b4878648fd376433739bd5c835503f6301a5b2 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 20 Nov 2011 23:14:50 +0000 Subject: Sun Nov 20 23:14:50 UTC 2011 --- staging/lighttpd/lighttpd.rc.d | 132 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 staging/lighttpd/lighttpd.rc.d (limited to 'staging/lighttpd/lighttpd.rc.d') diff --git a/staging/lighttpd/lighttpd.rc.d b/staging/lighttpd/lighttpd.rc.d new file mode 100644 index 000000000..88f0a1474 --- /dev/null +++ b/staging/lighttpd/lighttpd.rc.d @@ -0,0 +1,132 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + + +pid_file='/var/run/lighttpd/lighttpd-angel.pid' + +get_pid() { + if [ -r "${pid_file}" ]; then + cat "${pid_file}" + else + pgrep -f /usr/sbin/lighttpd-angel + fi +} + +test_config() { + stat_busy 'Checking configuration' + if [ $(id -u) -ne 0 ]; then + stat_append '(This script must be run as root)' + stat_die + fi + + if [ ! -r /etc/lighttpd/lighttpd.conf ]; then + stat_append '(/etc/lighttpd/lighttpd.conf not found)' + stat_die + fi + + /usr/sbin/lighttpd -t -f /etc/lighttpd/lighttpd.conf >/dev/null 2>&1 + if [ $? -gt 0 ]; then + stat_append '(error in /etc/lighttpd/lighttpd.conf)' + stat_die + fi + + local piddir=$(dirname "${pid_file}") + if [ ! -d "${piddir}" ]; then + install -d -m755 -o http -g http "${piddir}" + fi + + stat_done +} + +start() { + stat_busy 'Starting lighttpd' + + local PID=$(get_pid) + if [ -z "$PID" ]; then + nohup /usr/sbin/lighttpd-angel -D -f /etc/lighttpd/lighttpd.conf >>/var/log/lighttpd/lighttpd-angel.log 2>&1 & + if [ $? -gt 0 ]; then + stat_die + else + echo $! > "${pid_file}" + add_daemon lighttpd + stat_done + fi + else + stat_die + fi +} + +stop() { + stat_busy 'Stopping lighttpd' + local PID=$(get_pid) + [ -n "$PID" ] && kill $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + [ -f "${pid_file}" ] && rm -f "${pid_file}" + rm_daemon lighttpd + stat_done + fi +} + +gracefull-stop() { + stat_busy 'Stopping lighttpd gracefully' + local PID=$(get_pid) + [ -n "$PID" ] && kill -INT $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + [ -f "${pid_file}" ] && rm -f "${pid_file}" + rm_daemon lighttpd + stat_done + fi +} + +reload() { + stat_busy 'Reloading lighttpd' + local PID=$(get_pid) + [ -n "$PID" ] && kill -HUP $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_die + else + stat_done + fi +} + + +case "$1" in + start) + test_config + start + ;; + stop) + test_config + stop + ;; + gracefull-stop) + test_config + stop + ;; + reload) + test_config + reload + ;; + restart) + test_config + stop + while [ -n "$(get_pid)" ]; do + sleep 1 + done + start + ;; + status) + stat_busy 'Checking lighttpd status' + ck_status lighttpd + ;; + *) + echo "usage: $0 {start|stop|gracefull-stop|reload|restart|status}" +esac + +exit 0 -- cgit v1.2.3-54-g00ecf