#!/bin/sh # # chkconfig: 345 55 45 # description: The arpwatch daemon attempts to keep track of ethernet/ip \ # address pairings. # processname: arpwatch # Source function library . /etc/rc.d/init.d/functions # Get network config . /etc/sysconfig/network # Get service config [ -f /etc/sysconfig/arpwatch ] && . /etc/sysconfig/arpwatch # Check that networking is up. if [ "${NETWORKING}" = "no" ]; then msg_Network_Down "arpwatch" exit 1 fi # See how we were called. case "$1" in start) # Check if the service is already running? if [ ! -f /var/lock/subsys/arpwatch ]; then if [ -z "$INTERFACES" ]; then INTERFACES="`/sbin/ip link show \ | egrep '^[^ ].*' |egrep -v "NOARP|LOOPBACK" \ |sed 's/[0-9]*: \([a-zA-Z0-9]*\)[@:].*/\1/'|xargs`" fi for IFC in $INTERFACES; do msg_starting "arpwatch ($IFC)" touch /var/lib/arpwatch/$IFC.dat daemon arpwatch -i $IFC -f /var/lib/arpwatch/$IFC.dat RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/arpwatch done else msg_Already_Running "arpwatch" fi ;; stop) if [ -f /var/lock/subsys/arpwatch ]; then msg_stopping "arpwatch" killproc arpwatch rm -f /var/lock/subsys/arpwatch >/dev/null 2>&1 else msg_Not_Running "arpwatch" exit 1 fi ;; status) status arpwatch ;; restart|reload) $0 stop $0 start ;; *) msg_Usage "$0 {start|stop|status|restart|reload}" exit 1 esac exit $RETVAL