#
# chkconfig: 2345 72 08
#
-# description: Script for automount using a Sun-style "master map".
-# We first look for a local /etc/autofs/auto.master, then a YP
+# description: Script for automount using a Sun-style "master map". \
+# We first look for a local /etc/autofs/auto.master, then a YP \
# map with that name
#
-# processname: automount
+# processname: autofs
# config: /etc/autofs/auto.master
[ -f /etc/sysconfig/autofs ] && . /etc/sysconfig/autofs
# Check that networking is up.
-if is_no "${NETWORKING}"; then
- # nls "ERROR: Networking is down. %s can't be run." <service>
- msg_Network_Down automounter
- exit 1
+if is_yes "${NETWORKING}"; then
+ if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
+ msg_network_down automounter
+ exit 1
+ fi
+else
+ exit 0
fi
-
+
DAEMON=/usr/sbin/automount
#
#
# Check for local maps to be loaded
#
-if [ -f /etc/autofs/auto.master ]
-then
- cat /etc/autofs/auto.master | sed -e '/^#/d' -e '/^$/d'| (
- while read dir map options
- do
- if [ ! -z "$dir" -a ! -z "$map" \
- -a x`echo "$map" | cut -c1` != 'x-' ]
- then
- map=`echo "/etc/autofs/$map" | sed -e 's:^/etc\/autofs//:/:'`
- options=`echo "$options" | sed -e 's/\(^\|[ \t]\)-/\1/g'`
- if [ -x $map ]; then
- echo "$DAEMON --timeout $TIMEOUT $dir program $map $options"
- elif [ -f $map ]; then
- echo "$DAEMON --timeout $TIMEOUT $dir file $map $options"
+if [ -f /etc/autofs/auto.master ]; then
+ cat /etc/autofs/auto.master | sed -e '/^#/d' -e '/^$/d'| (
+ while read dir map options; do
+ if [ ! -z "$dir" -a ! -z "$map" -a x`echo "$map" | cut -c1` != 'x-' ]; then
+ :
else
- echo "$DAEMON --timeout $TIMEOUT $dir `basename $map` $options"
+ continue
+ fi
+
+ maptype=${map%%:*}
+ if [ "$maptype" = "$map" ]; then
+ map=`echo "/etc/autofs/$map" | sed -e 's:^/etc/autofs//:/:'`
+ options=`echo "$options" | sed -e 's/\(^\|[ \t]\)-/\1/g'`
+ if [ -x $map ]; then
+ echo "$DAEMON --timeout ${TIMEOUT} ${OPTIONS} $dir program $map $options"
+ elif [ -f $map ]; then
+ echo "$DAEMON --timeout ${TIMEOUT} ${OPTIONS} $dir file $map $options"
+ else
+ echo "$DAEMON --timeout ${TIMEOUT} ${OPTIONS} $dir `basename $map` $options"
+ fi
+ else
+ map=${map#*/}
+ if [ "$map" ]; then
+ if [ "$maptype" = "file" ]; then
+ map=`echo "/etc/autofs/$map" | sed -e 's:^/etc/autofs//:/:'`
+ fi
+ echo "$DAEMON --timeout $TIMEOUT ${OPTIONS} $dir $maptype $map $options"
+ fi
fi
- fi
done
- )
+ )
fi
#
# Check for YellowPage maps to be loaded
#
-if [ -e /usr/bin/ypcat ] && [ `ypcat -k auto.master 2>/dev/null | wc -l` -gt 0 ]
-then
- ypcat -k auto.master | (
- while read dir map options
- do
- if [ ! -z "$dir" -a ! -z "$map" \
- -a x`echo "$map" | cut -c1` != 'x-' ]
- then
- map=`echo "$map" | sed -e 's/^auto_/auto./'`
- if echo $options | grep -- '-t' >/dev/null 2>&1 ; then
- mountoptions="--timeout $(echo $options | \
- sed 's/^.*-t\(imeout\)*[ \t]*\([0-9][0-9]*\).*$/\2/g')"
- fi
- options=`echo "$options" | sed -e '
- s/--*t\(imeout\)*[ \t]*[0-9][0-9]*//g
- s/\(^\|[ \t]\)-/\1/g'`
- echo "$DAEMON --timeout $TIMEOUT $mountoptions $dir yp $map $options"
- fi
- done
- )
+if is_yes $USE_YP; then
+ if [ -e /usr/bin/ypcat ] && \
+ [ `ypcat -k auto.master 2>/dev/null | wc -l` -gt 0 ]; then
+ ypcat -k auto.master | (
+ while read dir map options; do
+ if [ ! -z "$dir" -a ! -z "$map" \
+ -a x`echo "$map" | cut -c1` != 'x-' ]; then
+ map=`echo "$map" | sed -e 's/^auto_/auto./'`
+ if echo $options | \
+ grep -- '-t' >/dev/null 2>&1; then
+ mountoptions="--timeout $(echo $options | \
+ sed 's/^.*-t\(imeout\)*[ \t]*\([0-9][0-9]*\).*$/\2/g')"
+ fi
+ options=`echo "$options" | sed -e '
+ s/--*t\(imeout\)*[ \t]*[0-9][0-9]*//g
+ s/\(^\|[ \t]\)-/\1/g'`
+ echo "$DAEMON --timeout $TIMEOUT ${OPTIONS} $mountoptions \
+ $dir yp $map $options"
+ fi
+ done
+ )
+ fi
fi
}
-#
-# See how we were called.
-#
-case "$1" in
- start)
+start() {
# Check if the service is already running?
- if [ ! -f /var/lock/subsys/automount ]; then
- msg_starting automounter
+ if [ ! -f /var/lock/subsys/autofs ]; then
+ msg_starting automounter
busy
- if getmounts | sh; then
- deltext;ok
- else
- deltext;ok
- fi
- RETVAL=$?
- [ $RETVAL -eq 0 ] && touch /var/lock/subsys/automount
+# getmounts | sh
+ $DAEMON --timeout $TIMEOUT /etc/autofs/auto.master
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && ok || fail
+ [ $RETVAL -eq 0 ] && touch /var/lock/subsys/autofs
else
- msg_Already_Running automounter
- exit 1
+ msg_already_running automounter
+ fi
+}
+
+stop() {
+ if [ -f /var/lock/subsys/autofs ]; then
+ msg_stopping automounter
+ killproc automount
+ rm -f /var/lock/subsys/autofs >/dev/null 2>&1
+ else
+ msg_not_running automounter
fi
+}
+
+RETVAL=0
+# See how we were called.
+case "$1" in
+ start)
+ start
;;
stop)
- if [ -f /var/lock/subsys/automount ]; then
- msg_stopping automount -TERM
- killproc automount
- rm -f /var/lock/subsys/automount >/dev/null 2>&1
- else
- msg_Not_Running automounter
- exit 1
- fi
- ;;
- restart)
- $0 stop
- $0 start
+ stop
;;
- status)
- echo "Configured Mount Points:"
- getmounts
- echo ""
- echo "Active Mount Points:"
- ps ax|grep "[0-9]:[0-9][0-9] /usr/sbin/automount " | (
- while read pid tt stat time command; do echo $command; done
- )
+ restart|force-reload)
+ stop
+ start
;;
+# status)
+# nls "Configured Mount Points:"
+# getmounts
+# echo ""
+# nls "Active Mount Points:"
+# ps axw|grep "[0-9]:[0-9][0-9] /usr/sbin/automount " | (
+# while read pid tt stat time command; do echo $command; done
+# )
+# ;;
*)
- msg_Usage: "$0 {start|stop|restart|status}"
- exit 1
+ msg_usage "$0 {start|stop|restart|force-reload|status}"
+ exit 3
esac
exit $RETVAL