#!/bin/sh # # bigsister Big Sister System and Network Monitor # # chkconfig: 345 98 99 # description: Big Sister is System and Network Montoring system # Source function library . /etc/rc.d/init.d/functions # Get network config . /etc/sysconfig/network # Get service config [ -f /etc/sysconfig/bigsister ] && . /etc/sysconfig/bigsister # Check that networking is up. if is_yes "${NETWORKING}"; then if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then # nls "ERROR: Networking is down. %s can't be run." msg_network_down Big Sister exit 1 fi else exit 0 fi bs_killproc() { # kill the named process(es) msg_stopping "${4-$1}" pid=`ps -e -o pid,comm,args 2>/dev/null | grep -w perl 2>/dev/null | grep " $1 " 2>/dev/null | grep -v grep | awk '{ print $1 }'` if [ "$pid" != "" ]; then kill $2 $pid && ok || fail else [ "$3" != "y" ] && ok || died fi } RETVAL=0 # See how we were called. case "$1" in start) # Check if the service is already running? if [ ! -f /var/lock/subsys/bigsister ]; then if is_yes "$UXMON_ASROOT" ; then uxmonprefix="/bin/sh" else uxmonprefix="su - bs -s /bin/sh" fi umask 022 if [ -f /usr/lib/bs/bin/bsmon -a -f /etc/bs/etc/bsmon.cfg ]; then msg_starting "Big Sister bsmon" $uxmonprefix -c "/usr/bin/setsid /usr/lib/bs/bin/bsmon" > /dev/null 2>&1 RETVAL=$? [ "$RETVAL" -eq 0 ] && ok || ( fail ; exit $RETVAL ) fi if [ -f /usr/lib/bs/bin/bbd -a -f /etc/bs/adm/bb-display.cfg ]; then msg_starting "Big Sister bbd" $uxmonprefix -c "/usr/bin/setsid /usr/lib/bs/bin/bbd -b /usr/lib/bs $BBD_ARGS" >/dev/null 2>&1 RETVAL=$? [ "$RETVAL" -eq 0 ] && ok || ( fail ; exit $RETVAL ) fi for f in /etc/bs/adm/uxmon-net* ; do set `basename $f` case $1 in *bak|*%|*~|*.rpmsave|*.rpmorig|*.rpmnew) continue ;; *) msg_starting "Big Sister uxmon $1" $uxmonprefix -c "/usr/bin/setsid /usr/lib/bs/uxmon/uxmon -r /usr/lib/bs/uxmon/uxmon-rules.pl -b /usr/lib/bs -c $1" >/dev/null 2>&1 RETVAL=$? [ "$RETVAL" -eq 0 ] && ok || ( fail ; exit $RETVAL ) ;; esac done if [ -f /etc/bs/adm/bstrapd.cfg ]; then # bstrapd will only run as root msg_starting "Big Sister bstrapd" /usr/bin/setsid /usr/lib/bs/bin/bstrapd >/dev/null 2>&1 [ "$RETVAL" -eq 0 ] && ok || ( fail ; exit $RETVAL ) fi touch /var/lock/subsys/bigsister else msg_already_running "Big Sister" fi ;; stop) if [ -f /var/lock/subsys/bigsister ]; then bs_killproc uxmon -QUIT y "Big Sister uxmon" bs_killproc bbd -QUIT n "Big Sister bbd if running" bs_killproc bb_event_generator -QUIT n "Big Sister bb_event_generator if running" bs_killproc bsmon -QUIT n "Big Sister bsmon if running" bs_killproc bstrapd -QUIT n "Big Sister bstrapd if running" rm -f /var/lock/subsys/bigsister else msg_not_running "Big Sister" fi ;; status) ;; restart|force-reload) $0 stop $0 start exit $? ;; *) msg_usage "$0 {start|stop|restart|force-reload|status}" exit 3 esac exit $RETVAL