summaryrefslogtreecommitdiff
path: root/extra/lighttpd/lighttpd.rc.d
diff options
context:
space:
mode:
authorParabola <dev@list.parabolagnulinux.org>2011-04-05 14:26:38 +0000
committerParabola <dev@list.parabolagnulinux.org>2011-04-05 14:26:38 +0000
commit415856bdd4f48ab4f2732996f0bae58595092bbe (patch)
treeede2018b591f6dfb477fe9341ba17b9bc000fab9 /extra/lighttpd/lighttpd.rc.d
Tue Apr 5 14:26:38 UTC 2011
Diffstat (limited to 'extra/lighttpd/lighttpd.rc.d')
-rw-r--r--extra/lighttpd/lighttpd.rc.d129
1 files changed, 129 insertions, 0 deletions
diff --git a/extra/lighttpd/lighttpd.rc.d b/extra/lighttpd/lighttpd.rc.d
new file mode 100644
index 000000000..5f851d63e
--- /dev/null
+++ b/extra/lighttpd/lighttpd.rc.d
@@ -0,0 +1,129 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+
+get_pid_file() {
+ /usr/sbin/lighttpd -p -f /etc/lighttpd/lighttpd.conf 2>/dev/null | grep server.pid-file | cut -d= -f2
+}
+
+get_pid() {
+ local pid_file=$(get_pid_file)
+ local pid=$(pidof -o %PPID lighttpd-angel)
+ # only needed when updating from 1.4.26
+ # TODO: remove in future versions
+ local old_pid=$(pidof -o %PPID lighttpd)
+ if [ -r "${pid_file}" ]; then
+ cat "${pid_file}"
+ elif [ -n "${pid}" ]; then
+ echo "${pid}"
+ elif [ -n "${old_pid}" ]; then
+ echo "${old_pid}"
+ else
+ echo ''
+ 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
+
+ local d
+ for d in /var/{run,log,cache}/lighttpd; do
+ if [ ! -d $d ]; then
+ stat_append "(directory $d not found)"
+ stat_die
+ fi
+ done
+
+ /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
+
+ 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
+ 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
+ local pid_file=$(get_pid_file)
+ [ -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
+ ;;
+ 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|reload|restart|status}"
+esac
+
+exit 0