157 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			157 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/bin/bash
 | 
						|
########################################################################
 | 
						|
# Begin autofs
 | 
						|
#
 | 
						|
# Description : Start daemon for automounting file systems
 | 
						|
#
 | 
						|
# Author      : Bruce Dubbs - bdubbs@linuxfromscratch.org
 | 
						|
#
 | 
						|
# Version     : LFS 7.2
 | 
						|
#
 | 
						|
# Notes       : Updates to autofs distributed start script to make
 | 
						|
#               compatible with BLFS
 | 
						|
#
 | 
						|
########################################################################
 | 
						|
 | 
						|
### BEGIN INIT INFO
 | 
						|
# Provides: autofs
 | 
						|
# Required-Start: $network ypbind
 | 
						|
# Required-Stop: $network ypbind
 | 
						|
# Default-Start: 3 4 5
 | 
						|
# Default-Stop: 0 1 2 6
 | 
						|
# Short-Description: Automounts filesystems on demand
 | 
						|
# Description: Automounts filesystems on demand
 | 
						|
### END INIT INFO
 | 
						|
 | 
						|
#
 | 
						|
# Location of the automount daemon and the init directory
 | 
						|
#
 | 
						|
DAEMON=/sbin/automount
 | 
						|
prog=`basename $DAEMON`
 | 
						|
MODULE="autofs4"
 | 
						|
DEVICE="autofs"
 | 
						|
confdir=/etc/sysconfig
 | 
						|
 | 
						|
test -e $DAEMON || exit 0
 | 
						|
 | 
						|
PATH=/sbin:/usr/sbin:/bin:/usr/bin
 | 
						|
export PATH
 | 
						|
 | 
						|
#
 | 
						|
# load customized configuation settings
 | 
						|
#
 | 
						|
if [ -r $confdir/autofs ]; then
 | 
						|
   . $confdir/autofs
 | 
						|
fi
 | 
						|
 | 
						|
. /lib/lsb/init-functions
 | 
						|
 | 
						|
function start() {
 | 
						|
   log_info_msg "Starting $prog: "
 | 
						|
 | 
						|
   # Make sure autofs4 module is loaded
 | 
						|
   if ! grep -q autofs /proc/filesystems
 | 
						|
   then
 | 
						|
      # Try load the autofs4 module fail if we can't
 | 
						|
      modprobe $MODULE >/dev/null 2>&1
 | 
						|
      if [ $? -eq 1 ]
 | 
						|
      then
 | 
						|
         log_failure_msg "Error: failed to load autofs4 module."
 | 
						|
         return 1
 | 
						|
      fi
 | 
						|
   elif ([ -f /proc/modules ] && lsmod) | grep -q autofs[^4]
 | 
						|
   then
 | 
						|
      # wrong autofs filesystem module loaded
 | 
						|
      log_failure_msg "Error: autofs kernel module is loaded, autofs4 required"
 | 
						|
      return 1
 | 
						|
   fi
 | 
						|
 | 
						|
   # 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
 | 
						|
      if [ -x /sbin/restorecon -a -c /dev/$DEVICE ]; then
 | 
						|
         /sbin/restorecon /dev/$DEVICE
 | 
						|
      fi
 | 
						|
   else
 | 
						|
      if [ -c /dev/$DEVICE ]; then
 | 
						|
         rm /dev/$DEVICE
 | 
						|
      fi
 | 
						|
   fi
 | 
						|
 | 
						|
   $prog $OPTIONS 
 | 
						|
   evaluate_retval
 | 
						|
}
 | 
						|
 | 
						|
function stop() {
 | 
						|
   log_info_msg $"Stopping $prog: "
 | 
						|
   count=0
 | 
						|
   while [ -n "`pidof $prog`" -a $count -lt 15 ] ; do
 | 
						|
      killall -TERM $prog >& /dev/null
 | 
						|
      RETVAL=$?
 | 
						|
      [ $RETVAL = 0 -a -z "`pidof $prog`" ] || sleep 3
 | 
						|
      count=`expr $count + 1`
 | 
						|
   done
 | 
						|
   if [ -z "`pidof $prog`" ] ; then
 | 
						|
      log_success_msg2
 | 
						|
   else
 | 
						|
      log_failure_msg2
 | 
						|
   fi
 | 
						|
   return $RETVAL
 | 
						|
}
 | 
						|
 | 
						|
function restart() {
 | 
						|
   stop
 | 
						|
   start
 | 
						|
}
 | 
						|
 | 
						|
function reload() {
 | 
						|
   pid=`pidof $prog`
 | 
						|
   if [ -z $pid ]; then
 | 
						|
      log_failure_msg2 $"$prog not running"
 | 
						|
      RETVAL=1
 | 
						|
   else
 | 
						|
      kill -HUP $pid 2> /dev/null
 | 
						|
      log_success_msg2 $"Reloading maps"
 | 
						|
      RETVAL=0
 | 
						|
   fi
 | 
						|
   return $RETVAL
 | 
						|
}
 | 
						|
 | 
						|
RETVAL=0
 | 
						|
 | 
						|
case "$1" in
 | 
						|
   start)
 | 
						|
      start
 | 
						|
      ;;
 | 
						|
   forcestart)
 | 
						|
      OPTIONS="$OPTIONS --force"
 | 
						|
      start
 | 
						|
      ;;
 | 
						|
   stop)
 | 
						|
      stop
 | 
						|
      ;;
 | 
						|
   restart)
 | 
						|
      restart
 | 
						|
      ;;
 | 
						|
   forcerestart)
 | 
						|
      OPTIONS="$OPTIONS --force"
 | 
						|
      restart
 | 
						|
      ;;
 | 
						|
   reload)
 | 
						|
      reload
 | 
						|
      ;;
 | 
						|
   *)
 | 
						|
      echo $"Usage: $0 {start|forcestart|stop|restart|forcerestart|reload}"
 | 
						|
      exit 1;
 | 
						|
      ;;
 | 
						|
esac
 | 
						|
 | 
						|
exit $?
 | 
						|
 | 
						|
 |