Blob Blame History Raw
#! /bin/sh
#
# chkconfig: 2345 90 10
# description: Configure the mon_fsstatd and mon_procd daemons.

### BEGIN INIT INFO
# Provides: mon_statd
# Required-Start: $local_fs $remote_fs
# Required-Stop: $local_fs $remote_fs
# Should-Start:
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Configure the mon_fsstatd and mon_procd daemons.
# Description: Configures the mon_fsstatd and mon_procd daemons. It uses the
#              configuration file /etc/sysconfig/mon_statd.
### END INIT INFO

# Source function library.
. /etc/rc.d/init.d/functions

exec_fsstat="/usr/sbin/mon_fsstatd"
prog_fsstat="mon_fsstatd"
exec_proc="/usr/sbin/mon_procd"
prog_proc="mon_procd"

config="/etc/sysconfig/mon_statd"
g_retval=0

lockfile_fsstat=/var/lock/subsys/$prog_fsstat
lockfile_proc=/var/lock/subsys/$prog_proc

[ -e $config ] && . $config || exit 6

load_kernel_module()
{
    if [ ! -e /dev/monwriter ]; then
        echo "Loading monwriter module..."
        modprobe monwriter 2>&1
        if [ $? -ne 0 ]; then
            exit 1
        fi
        udevadm settle
        if [ $? -ne 0 ]; then
            exit 1
        fi
    fi
}

start_fsstat() {
    [ `id -u` -eq 0 ] || exit 4
    load_kernel_module
    [ -x $exec_fsstat ] || exit 5
    echo -n $"Starting $prog_fsstat: "
    daemon $exec_fsstat -i $FSSTAT_INTERVAL
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile_fsstat
    return $retval
}

start_proc() {
    [ `id -u` -eq 0 ] || exit 4
    load_kernel_module
    [ -x $exec_proc ] || exit 5
    echo -n $"Starting $prog_proc: "
    daemon $exec_proc -i $PROC_INTERVAL
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile_proc
    return $retval
}

stop_fsstat() {
    [ `id -u` -eq 0 ] || exit 4
    echo -n $"Stopping $prog_fsstat: "
    killproc $exec_fsstat
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile_fsstat
    return $retval
}

stop_proc() {
    [ `id -u` -eq 0 ] || exit 4
    echo -n $"Stopping $prog_proc: "
    killproc $exec_proc
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile_proc
    return $retval
}

restart_fsstat() {
    stop_fsstat
    start_fsstat
}

restart_proc() {
    stop_proc
    start_proc
}

reload_fsstat() {
    restart_fsstat
}

reload_proc() {
    restart_proc
}

force_reload_fsstat() {
    restart_fsstat
}

force_reload_proc() {
    restart_proc
}

rh_status_fsstat() {
    # run checks to determine if the service is running or use generic status
    status $exec_fsstat
}

rh_status_proc() {
    # run checks to determine if the service is running or use generic status
    status $exec_proc
}

rh_status_fsstat_q() {
    rh_status_fsstat >/dev/null 2>&1
}

rh_status_proc_q() {
    rh_status_proc >/dev/null 2>&1
}


case "$1" in
    start)
	[ $FSSTAT = "yes" ] && { rh_status_fsstat_q || { start_fsstat ; g_retval=$? ; } || { g_retval=0 ; } }
	[ $PROC = "yes" ]   && { rh_status_proc_q || { start_proc ; g_retval=$? ; } || { g_retval=0 ; } }
        ;;
    stop)
	[ $FSSTAT = "yes" ] && { rh_status_fsstat_q && { stop_fsstat ; g_retval=$? ; } || { g_retval=0 ; } }
	[ $PROC = "yes" ]   && { rh_status_proc_q && { stop_proc ; g_retval=$? ; } || { g_retval=0 ; } }
        ;;
    restart)
        [ $FSSTAT = "yes" ] && { restart_fsstat ; g_retval=$? ; }
        [ $PROC = "yes" ]   && { restart_proc ; g_retval=$? ; }
        ;;
    reload)
	[ $FSSTAT = "yes" ] && { rh_status_fsstat_q && { reload_fsstat ; g_retval=$? ; } || { g_retval=7 ; } }
	[ $PROC = "yes" ]   && { rh_status_proc_q && { reload_proc ; g_retval=$? ; } || { g_retval=7 ; } }
        ;;
    force-reload)
        [ $FSSTAT = "yes" ] && { force_reload_fsstat ; g_retval=$? ; }
        [ $PROC = "yes" ]   && { force_reload_proc ; g_retval=$? ; }
        ;;
    status)
        [ $FSSTAT = "yes" ] && { rh_status_fsstat ; g_retval=$? ; }
        [ $PROC = "yes" ]   && { rh_status_proc ; g_retval=$? ; }
        ;;
    condrestart|try-restart)
	[ $FSSTAT = "yes" ] && { rh_status_fsstat_q && { restart_fsstat ; g_retval=$? ; } || { g_retval=0 ; } }
	[ $PROC = "yes" ]   && { rh_status_proc_q && { restart_proc ; g_retval=$? ; } || { g_retval=0 ; } }
        ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
        exit 2
esac
exit $g_retval