]> gitweb.michael.orlitzky.com - mjo-overlay.git/blob - app-backup/backuppc/files/apache2-backuppc.init
42e89c6cc6ddc8c86c54618a53e624ce710860d4
[mjo-overlay.git] / app-backup / backuppc / files / apache2-backuppc.init
1 #!/sbin/runscript
2 # Copyright 1999-2011 Gentoo Foundation
3 # Distributed under the terms of the GNU General Public License v2
4
5 opts="configdump configtest fullstatus graceful gracefulstop modules reload virtualhosts"
6
7 depend() {
8 need net
9 use mysql dns logger netmount postgresql
10 after sshd
11 }
12
13 configtest() {
14 ebegin "Checking ${SVCNAME} configuration"
15 checkconfig
16 eend $?
17 }
18
19 checkconfd() {
20 PIDFILE="${PIDFILE:-/var/run/apache2-backuppc.pid}"
21 TIMEOUT=${TIMEOUT:-10}
22
23 SERVERROOT="${SERVERROOT:-/usr/lib/apache2}"
24 if [ ! -d ${SERVERROOT} ]; then
25 eerror "SERVERROOT does not exist: ${SERVERROOT}"
26 return 1
27 fi
28
29 CONFIGFILE="${CONFIGFILE:-/etc/BackupPC/httpd.conf}"
30 [ "${CONFIGFILE#/}" = "${CONFIGFILE}" ] && CONFIGFILE="${SERVERROOT}/${CONFIGFILE}"
31 if [ ! -r "${CONFIGFILE}" ]; then
32 eerror "Unable to read configuration file: ${CONFIGFILE}"
33 return 1
34 fi
35
36 APACHE2_OPTS="${APACHE2_OPTS} -d ${SERVERROOT}"
37 APACHE2_OPTS="${APACHE2_OPTS} -f ${CONFIGFILE}"
38 [ -n "${STARTUPERRORLOG}" ] && APACHE2_OPTS="${APACHE2_OPTS} -E ${STARTUPERRORLOG}"
39
40 APACHE2="/usr/sbin/apache2"
41 }
42
43 checkconfig() {
44 checkconfd || return 1
45
46 ${APACHE2} ${APACHE2_OPTS} -t 1>/dev/null 2>&1
47 ret=$?
48 if [ $ret -ne 0 ]; then
49 eerror "${SVCNAME} has detected a syntax error in your configuration files:"
50 ${APACHE2} ${APACHE2_OPTS} -t
51 fi
52
53 return $ret
54 }
55
56 start() {
57 checkconfig || return 1
58
59 [ -f /var/log/apache2/ssl_scache ] && rm /var/log/apache2/ssl_scache
60
61 ebegin "Starting ${SVCNAME}"
62 ${APACHE2} ${APACHE2_OPTS} -k start
63
64 let i=0
65 while [ ! -e "${PIDFILE}" ] && [ $i -lt ${TIMEOUT} ]; do
66 sleep 1 && i=$(expr $i + 1)
67 done
68
69 test $i -le ${TIMEOUT}
70 eend $?
71 }
72
73 stop() {
74 checkconfd || return 1
75
76 ebegin "Stopping ${SVCNAME}"
77 ${APACHE2} ${APACHE2_OPTS} -k stop
78
79 let i=0
80 while pidof "${APACHE2}" >/dev/null && [ $i -lt ${TIMEOUT} ]; do
81 sleep 1 && i=$(expr $i + 1)
82 done
83
84 test $i -le ${TIMEOUT}
85 eend $?
86 }
87
88 reload() {
89 RELOAD_TYPE="${RELOAD_TYPE:-graceful}"
90
91 checkconfig || return 1
92 service_started "${SVCNAME}" || return
93
94 if [ "${RELOAD_TYPE}" = "restart" ]; then
95 ebegin "Restarting ${SVCNAME}"
96 ${APACHE2} ${APACHE2_OPTS} -k restart
97 eend $?
98 elif [ "${RELOAD_TYPE}" = "graceful" ]; then
99 ebegin "Gracefully restarting ${SVCNAME}"
100 ${APACHE2} ${APACHE2_OPTS} -k graceful
101 eend $?
102 else
103 eerror "${RELOAD_TYPE} is not a valid RELOAD_TYPE. Please edit /etc/conf.d/${SVCNAME}"
104 fi
105 }
106
107 graceful() {
108 checkconfig || return 1
109 service_started "${SVCNAME}" || return
110 ebegin "Gracefully restarting ${SVCNAME}"
111 ${APACHE2} ${APACHE2_OPTS} -k graceful
112 eend $?
113 }
114
115 gracefulstop() {
116 checkconfig || return 1
117
118 # zap!
119 if service_started "${SVCNAME}"; then
120 mark_service_stopped "${SVCNAME}"
121 fi
122
123 ebegin "Gracefully stopping ${SVCNAME}"
124 ${APACHE2} ${APACHE2_OPTS} -k graceful-stop
125 eend $?
126 }
127
128 modules() {
129 checkconfig || return 1
130
131 ${APACHE2} ${APACHE2_OPTS} -M 2>&1
132 }
133
134 fullstatus() {
135 LYNX="${LYNX:-lynx -dump}"
136 STATUSURL="${STATUSURL:-http://localhost/server-status}"
137
138 if ! service_started "${SVCNAME}"; then
139 eerror "${SVCNAME} not started"
140 elif ! type -p ${LYNX} 2>&1 >/dev/null; then
141 eerror "lynx not found! you need to emerge www-client/lynx"
142 else
143 ${LYNX} ${STATUSURL}
144 fi
145 }
146
147 virtualhosts() {
148 checkconfd || return 1
149 ${APACHE2} ${APACHE2_OPTS} -S
150 }
151
152 configdump() {
153 LYNX="${LYNX:-lynx -dump}"
154 INFOURL="${INFOURL:-http://localhost/server-info}"
155
156 checkconfd || return 1
157
158 if ! service_started "${SVCNAME}"; then
159 eerror "${SVCNAME} not started"
160 elif ! type -p ${LYNX} 2>&1 >/dev/null; then
161 eerror "lynx not found! you need to emerge www-client/lynx"
162 else
163 echo "${APACHE2} started with '${APACHE2_OPTS}'"
164 for i in config server list; do
165 ${LYNX} "${INFOURL}/?${i}" | sed '/Apache Server Information/d;/^[[:space:]]\+[_]\+$/Q'
166 done
167 fi
168 }
169
170 # vim: ts=4 filetype=gentoo-init-d