#!/bin/sh # # simple autofs init script . /etc/init.d/globals uname_r() { read dummy dummy uname dummy < /proc/version echo $uname } # load the module if necessary if ! grep -q autofs /proc/filesystems; then # the kernel does not know it if [ -e /lib/modules/$(uname_r)/autofs4.ko ]; then MODULE=/lib/modules/$(uname_r)/autofs4.ko # hd1 else MODULE=/lib/modules/$(uname_r)/kernel/fs/autofs4/autofs4.ko fi if ! insmod $MODULE > /dev/null 2>&1; then # module loading failed exit 1; fi fi DEVICE="autofs" # the MAPFILE is the "configfile" for automount MAPFILE=/var/etc/auto.master # allow stopping the daemon even without a mapfile if [ ! -e $MAPFILE -a "x$1" = "xstart" ]; then # no config file => no need to do anything else SHOWINFO "automount: $MAPFILE does not exist, cannot start" exit 1; fi # allow stopping the daemon even without an entry in mapfile ENTRYS=0 while read line; do test "${line:0:1}" = "#" || ENTRYS=1 test $ENTRYS = "1" && break done < $MAPFILE if [ $ENTRYS = "0" -a "x$1" = "xstart" ]; then # no entrys in config file => no need to do anything else SHOWINFO "automount: $MAPFILE is empty, cannot start" exit 1; fi PIDFILE=/var/run/automount.pid # # load customized configuation settings # CUSTOMCONF=/etc/default/autofs if [ -e $CUSTOMCONF ]; then . $CUSTOMCONF fi case $1 in stop) if [ -e $PIDFILE ]; then SHOWINFO "stopping" read PID < $PIDFILE && kill -TERM $PID fi ;; start) # Check misc device if [ -n "$USE_MISC_DEVICE" -a "x$USE_MISC_DEVICE" = "xyes" ]; then sleep 1 if [ -e "/proc/misc" ]; then MINOR=`awk "/$DEVICE/ {print \\$1}" /proc/misc` if [ -n "$MINOR" -a ! -c "/dev/$DEVICE" ]; then mknod -m 0600 /dev/$DEVICE c 10 $MINOR fi fi else if [ -c /dev/$DEVICE ]; then rm /dev/$DEVICE fi fi # automount needs /var/lock or it will exit silently [ -d /var/lock ] || mkdir -p /var/lock SHOWINFO "starting" automount -p $PIDFILE $MAPFILE $OPTIONS ;; restart) $0 stop sleep 1 $0 start ;; reload) if [ -e $PIDFILE ]; then SHOWINFO "reloading" read PID < $PIDFILE && kill -HUP $PID fi ;; *) echo "[$BASENAME] Usage: $0 {start|restart|reload|stop}" ;; esac