#!/bin/sh
AUTOMOUNT_PIDFILE="/var/run/automount.pid"
IS_CONSOLE_LOGOUT=0
IS_NETWORK_CHANGE=0
while [ $do
case "${1}" in
"State:/Users/ConsoleUser" | "state:/users/ConsoleUser" )
scutil <<_END_OF_INPUT | grep -q "No such key"
open
get ${1}
quit
_END_OF_INPUT
status=$?
if [ $status -eq 0 ]; then
IS_CONSOLE_LOGOUT=1
fi
;;
* )
IS_NETWORK_CHANGE=1
;;
esac
shift
done
if [ ${IS_NETWORK_CHANGE} -gt 0 ]; then
logger -i -p daemon.debug -t restart-automount "process network configuration changed"
if [ ! -f "${AUTOMOUNT_PIDFILE}" ]; then
. /etc/rc.common
if [ "${AUTOMOUNT:=-YES-}" = "-YES-" ]; then
automount -m /Network/Servers -fstab -m /automount -static
fi
exit 0
fi
elif [ ${IS_CONSOLE_LOGOUT} -gt 0 ]; then
logger -i -p daemon.debug -t restart-automount "process console user logout"
if [ ! -f "${AUTOMOUNT_PIDFILE}" ]; then
exit 0
fi
aPID=`cat "${AUTOMOUNT_PIDFILE}"`
kill -USR1 ${aPID}
status=$?
if [ $status -ne 0 ]; then
logger -i -p daemon.notice -t restart-automount "Could not SIGUSR1 automount, pid=${aPID}, status=${status}"
exit 0
fi
fi
exit 0