64 lines
1.0 KiB
Bash
64 lines
1.0 KiB
Bash
#!/bin/sh
|
|
#
|
|
# /etc/rc.d/rc./arpwatch
|
|
#
|
|
# Start/stop/restart/status arpwatch.
|
|
|
|
ARPDIR="/var/lib/arpwatch"
|
|
IFACE="$2"
|
|
|
|
OPTIONS="-i $IFACE -f $ARPDIR/arp-$IFACE.dat -u root -e root -s root"
|
|
|
|
pid="$(ps ax | awk '{if (match($5, ".*/arpwatch$") || $5 == "arpwatch") print $1}')"
|
|
|
|
start() {
|
|
if [ "$IFACE" = "" ]; then
|
|
echo "Please specify interface name"
|
|
exit 1
|
|
else
|
|
if [ ! -f "$ARPDIR/arp-$IFACE.dat" ]; then
|
|
echo "Creating new database file..."
|
|
touch $ARPDIR/arp-$IFACE.dat
|
|
echo "Starting arpwatch on $IFACE..."
|
|
arpwatch $OPTIONS
|
|
else
|
|
echo "Starting arpwatch on $IFACE..."
|
|
arpwatch $OPTIONS
|
|
fi
|
|
fi
|
|
}
|
|
|
|
stop() {
|
|
echo "Stopping arpwatch..."
|
|
killall arpwatch
|
|
}
|
|
|
|
status() {
|
|
if [ "$pid" != "" ]; then
|
|
echo "arpwatch (pid "$pid") is running..."
|
|
else
|
|
echo "arpwatch is not running..."
|
|
fi
|
|
}
|
|
|
|
case "$1" in
|
|
'start')
|
|
start
|
|
;;
|
|
'stop')
|
|
stop
|
|
;;
|
|
'restart')
|
|
stop
|
|
start
|
|
;;
|
|
'status')
|
|
status
|
|
;;
|
|
*)
|
|
echo ""
|
|
echo "Usage: $0 {start [IFACE] | stop | restart [IFACE] | status}"
|
|
echo ""
|
|
exit 1
|
|
esac
|