5c2cefb
#!/bin/sh
5c2cefb
#
5c2cefb
# munin-cgi-graph    Start and stop Munin FastCGI processes for NGINX
5c2cefb
#
5c2cefb
# chkconfig:   - 80 20
5c2cefb
# description: Spawn Munin FastCGI scripts to be used by NGINX web server
5c2cefb
5c2cefb
### BEGIN INIT INFO
5c2cefb
# Provides:
5c2cefb
# Required-Start: $network $syslog
5c2cefb
# Required-Stop:
5c2cefb
# Should-Start:
5c2cefb
# Should-Stop:
5c2cefb
# Default-Start:
5c2cefb
# Default-Stop: 0 1 2 6
5c2cefb
# Short-Description: Start and stop Munin FastCGI processes
5c2cefb
# Description:       Spawn Munin FastCGI scripts to be used by NGINX web server
5c2cefb
### END INIT INFO
5c2cefb
5c2cefb
# Source function library.
5c2cefb
. /etc/rc.d/init.d/functions
5c2cefb
5c2cefb
exec=/usr/bin/spawn-fcgi
5c2cefb
lockfile=/var/lock/subsys/munin-cgi-graph
5c2cefb
5c2cefb
graphprog=/var/www/html/munin/cgi/munin-cgi-graph
5c2cefb
graphsock=/var/run/munin/munin-cgi-graph.sock
5c2cefb
graphpid=/var/run/munin/munin-cgi-graph.pid
5c2cefb
5c2cefb
GRAPHOPTIONS="-u munin -U nginx -S -M 0600 -F 2"
5c2cefb
[ -f /etc/sysconfig/munin-cgi-graph ] && . /etc/sysconfig/munin-cgi-graph
5c2cefb
5c2cefb
munin_cleanup() {
5c2cefb
    # Remove the socket if it exists
5c2cefb
    [ -n "${graphsock}" -a -S "${graphsock}" ] && rm -f ${graphsock}
5c2cefb
}
5c2cefb
5c2cefb
start() {
5c2cefb
    munin_cleanup
5c2cefb
    echo -n $"Starting munin-cgi-graph: "
5c2cefb
    daemon "${exec} -s ${graphsock} -P ${graphpid} ${GRAPHOPTIONS} -- ${graphprog} >/dev/null"
5c2cefb
    RETVAL=$?
5c2cefb
    echo
5c2cefb
    if [ $RETVAL -eq 0 ]; then
5c2cefb
	touch $lockfile
5c2cefb
    fi
5c2cefb
    return $RETVAL
5c2cefb
}
5c2cefb
5c2cefb
stop() {
5c2cefb
    echo -n $"Stopping munin-cgi-graph: "
5c2cefb
    killproc $graphprog
5c2cefb
    RETVAL=$?
5c2cefb
    echo
5c2cefb
    munin_cleanup
5c2cefb
    [ $RETVAL -eq 0 ] && rm -f $lockfile
5c2cefb
    return $RETVAL
5c2cefb
}
5c2cefb
5c2cefb
restart() {
5c2cefb
    stop
5c2cefb
    start
5c2cefb
}
5c2cefb
5c2cefb
reload() {
5c2cefb
    restart
5c2cefb
}
5c2cefb
5c2cefb
rh_status() {
5c2cefb
    # run checks to determine if the service is running or use generic status
5c2cefb
    status $graphprog
5c2cefb
}
5c2cefb
5c2cefb
rh_status_q() {
5c2cefb
    rh_status &>/dev/null
5c2cefb
}
5c2cefb
5c2cefb
case "$1" in
5c2cefb
    start)
5c2cefb
        rh_status_q && exit 0
5c2cefb
        $1
5c2cefb
        ;;
5c2cefb
    stop)
5c2cefb
        rh_status_q || exit 0
5c2cefb
        $1
5c2cefb
        ;;
5c2cefb
    restart)
5c2cefb
        $1
5c2cefb
        ;;
5c2cefb
    reload)
5c2cefb
        rh_status_q || exit 7
5c2cefb
        $1
5c2cefb
        ;;
5c2cefb
    status)
5c2cefb
        rh_status
5c2cefb
        ;;
5c2cefb
    condrestart|try-restart)
5c2cefb
        rh_status_q || exit 0
5c2cefb
        restart
5c2cefb
        ;;
5c2cefb
    *)
5c2cefb
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload}"
5c2cefb
        exit 2
5c2cefb
esac
5c2cefb
exit $?