]> git.pld-linux.org Git - packages/autofs.git/blobdiff - autofs.init
- changes by Kacper Kornet <kornet@camk.edu.pl>
[packages/autofs.git] / autofs.init
index 943e3fb6bb6f5874661323bca5739d2b7bb24e2a..bd0c80e5b76b54151ca8427efb4570311b024c10 100644 (file)
@@ -5,8 +5,8 @@
 #
 # 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: autofs
@@ -24,7 +24,7 @@
 
 # Check that networking is up.
 if is_yes "${NETWORKING}"; then
-       if [ ! -f /var/lock/subsys/network ]; then
+       if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
                # nls "ERROR: Networking is down. %s can't be run." <service>
                msg_network_down automounter
                exit 1
@@ -50,6 +50,8 @@ if [ -f /etc/autofs/auto.master ]; then
        while read dir map options; do
                if [ ! -z "$dir" -a ! -z "$map" \
                   -a x`echo "$map" | cut -c1` != 'x-' ]; then
+                       maptype=`echo $map | cut -f1 -d:`
+                       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
@@ -59,6 +61,15 @@ if [ -f /etc/autofs/auto.master ]; then
                        else
                                echo "$DAEMON --timeout $TIMEOUT $dir `basename $map` $options"
                        fi
+                       else
+                               map=`echo $map | cut -f2- -d:`
+                               if [ ! -z "$map" ]; then
+                                       if [ "$maptype" = "file" ]; then
+                                               map=`echo "/etc/autofs/$map" | sed -e 's:^/etc\/autofs//:/:'`
+                                       fi
+                                       echo "$DAEMON --timeout $TIMEOUT $dir $maptype $map $options"
+                               fi
+                       fi
                fi
        done
        )
@@ -92,41 +103,35 @@ if is_yes $USE_YP; then
 fi
 }
 
-#
-#      See how we were called.
-#
+RETVAL=0
+# See how we were called.
 case "$1" in
   start)
        # Check if the service is already running?
        if [ ! -f /var/lock/subsys/autofs ]; then
                msg_starting automounter
                busy
-               if getmounts | sh; then
-                       deltext;ok
-               else
-                       deltext;ok
-               fi
+               getmounts | sh 
                RETVAL=$?
+               [ $RETVAL -eq 0 ] && ok || fail
                [ $RETVAL -eq 0 ] && touch /var/lock/subsys/autofs
        else
                msg_already_running automounter
-               exit 1
        fi
        ;;
   stop)
        if [ -f /var/lock/subsys/autofs ]; then
                msg_stopping automounter
-               automount -TERM
                killproc automount
                rm -f /var/lock/subsys/autofs >/dev/null 2>&1
        else
                msg_not_running automounter
-               exit 1
        fi
        ;;
-  restart|reload)
+  restart|force-reload)
        $0 stop
        $0 start
+       exit $?
        ;;
   status)
        nls "Configured Mount Points:"
@@ -138,8 +143,8 @@ case "$1" in
        )
        ;;
   *)
-       msg_usage "$0 {start|stop|restart|reload|status}"
-       exit 1
+       msg_usage "$0 {start|stop|restart|force-reload|status}"
+       exit 3
 esac
 
 exit $RETVAL
This page took 0.062508 seconds and 4 git commands to generate.