2 # event script to manage httpd in a cluster environment
9 case $CTDB_INIT_STYLE in
11 CTDB_SERVICE_HTTP="httpd"
12 CTDB_CONFIG_HTTP="http"
15 CTDB_SERVICE_HTTP="apache2"
16 CTDB_CONFIG_HTTP="apache2"
19 CTDB_SERVICE_HTTP="apache2"
20 CTDB_CONFIG_HTTP="apache2"
24 # for now use red hat style as default
25 CTDB_SERVICE_HTTP="httpd"
26 CTDB_CONFIG_HTTP="http"
30 loadconfig "${CTDB_CONFIG_HTTP}"
32 [ "$CTDB_MANAGES_HTTPD" = "yes" ] || exit 0
37 # RHEL5 sometimes use a SIGKILL to terminate httpd, which then leaks
38 # semaphores. This is a hack to clean them up.
39 cleanup_httpd_semaphore_leak() {
40 killall -q -0 "${CTDB_SERVICE_HTTP}" ||
41 for i in $(ipcs -s | awk '$3 == "apache" { print $2 }') ; do
48 cleanup_httpd_semaphore_leak
49 service "${CTDB_SERVICE_HTTP}" start
53 service "${CTDB_SERVICE_HTTP}" stop
54 killall -q -9 "${CTDB_SERVICE_HTTP}"
58 ( ctdb_check_tcp_ports "http" 80 )
59 if [ $? -ne 0 ] ; then
60 echo "HTTPD is not running. Trying to restart HTTPD."
61 cleanup_httpd_semaphore_leak
62 service "${CTDB_SERVICE_HTTP}" start