1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
|
#!/bin/bash
### BEGIN INIT INFO
# Provides: mon_statd
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Default-Start: 1 2 3 4 5
# Default-Stop: 0 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
# chkconfig: 12345 01 99
DAEMON=mon_statd
FSSTATD=mon_fsstatd
PROCD=mon_procd
FSSTATD_PATH=/usr/sbin/$FSSTATD
PROCD_PATH=/usr/sbin/$PROCD
CONFIG_FILE=/etc/sysconfig/$DAEMON
FSSTATD_PID_FILE=/var/run/$FSSTATD.pid
PROCD_PID_FILE=/var/run/$PROCD.pid
RETVAL=0
# source function library
. /lib/lsb/init-functions
# Source config file
if [ -f $CONFIG_FILE ]; then
. $CONFIG_FILE
fi
start()
{
if [ ! -e /dev/monwriter ]; then
echo "Loading monwriter module..."
modprobe monwriter 2>&1
if [ "$?" -ne 0 ]; then
exit 1
fi
while [ ! -e /dev/monwriter ]; do
sleep 0
done
fi
if [ ! -f $FSSTATD_PID_FILE -a "$FSSTAT" = "yes" ]; then
echo -n $"Starting $FSSTATD:"
$FSSTATD_PATH -i $FSSTAT_INTERVAL && log_success_msg ||
log_failure_msg
elif [ "$FSSTAT" = "yes" ]; then
echo "$FSSTATD (pid $(cat $FSSTATD_PID_FILE)) is already running..."
fi
if [ ! -f $PROCD_PID_FILE -a "$PROC" = "yes" ]; then
echo -n $"Starting $PROCD:"
$PROCD_PATH -i $PROC_INTERVAL && log_success_msg ||
log_failure_msg
elif [ "$PROC" = "yes" ]; then
echo "$PROCD (pid $(cat $PROCD_PID_FILE)) is already running..."
fi
echo
}
stop()
{
echo -n $"Stopping $FSSTATD:"
if [ -f $FSSTATD_PID_FILE ]; then
killproc $FSSTATD_PATH -TERM
log_success_msg
rm -f $FSSTATD_PID_FILE
else
log_failure_msg
fi
echo -n $"Stopping $PROCD:"
if [ -f $PROCD_PID_FILE ]; then
killproc $PROCD_PATH -TERM
log_success_msg
rm -f $PROCD_PID_FILE
else
log_failure_msg
fi
echo
}
restart() {
stop
start
}
status()
{
if [ ! -f $FSSTATD_PID_FILE ]; then
echo "$FSSTATD is not running."
else
echo "$FSSTATD (pid $(cat $FSSTATD_PID_FILE), interval: $FSSTAT_INTERVAL) is running."
fi
if [ ! -f $PROCD_PID_FILE ]; then
echo "$PROCD is not running."
else
echo "$PROCD (pid $(cat $PROCD_PID_FILE), interval: $PROC_INTERVAL) is running."
fi
echo
}
# How are we called?
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart|reload)
restart
;;
*)
echo "Usage: $DAEMON {start|stop|status|restart|reload}"
RETVAL=1
esac
exit $RETVAL
|