158 lines
3.2 KiB
Plaintext
158 lines
3.2 KiB
Plaintext
|
#!/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 $?
|
||
|
|
||
|
|