|
Packit |
8480eb |
#!/bin/bash
|
|
Packit |
8480eb |
#
|
|
Packit |
8480eb |
# rc file for automount using a Sun-style "master map".
|
|
Packit |
8480eb |
#
|
|
Packit |
8480eb |
# On most distributions, this file should be called:
|
|
Packit |
8480eb |
# /etc/rc.d/init.d/autofs or /etc/init.d/autofs or /etc/rc.d/rc.autofs
|
|
Packit |
8480eb |
#
|
|
Packit |
8480eb |
#
|
|
Packit |
8480eb |
### BEGIN INIT INFO
|
|
Packit |
8480eb |
# Provides: autofs
|
|
Packit |
8480eb |
# Required-Start: $network ypbind
|
|
Packit |
8480eb |
# Required-Stop: $network ypbind
|
|
Packit |
8480eb |
# Default-Start: 3 4 5
|
|
Packit |
8480eb |
# Default-Stop: 0 1 2 6
|
|
Packit |
8480eb |
# Short-Description: Automounts filesystems on demand
|
|
Packit |
8480eb |
# Description: Automounts filesystems on demand
|
|
Packit |
8480eb |
### END INIT INFO
|
|
Packit |
8480eb |
#
|
|
Packit |
8480eb |
# Location of the automount daemon and the init directory
|
|
Packit |
8480eb |
#
|
|
Packit |
8480eb |
DAEMON=@@sbindir@@/automount
|
|
Packit |
8480eb |
prog=`basename $DAEMON`
|
|
Packit |
8480eb |
MODULE="autofs4"
|
|
Packit |
8480eb |
DEVICE="autofs"
|
|
Packit |
8480eb |
confdir=@@autofsconfdir@@
|
|
Packit |
8480eb |
|
|
Packit |
8480eb |
test -e $DAEMON || exit 0
|
|
Packit |
8480eb |
|
|
Packit |
8480eb |
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
|
Packit |
8480eb |
export PATH
|
|
Packit |
8480eb |
|
|
Packit |
8480eb |
#
|
|
Packit |
8480eb |
# load customized configuation settings
|
|
Packit |
8480eb |
#
|
|
Packit |
8480eb |
if [ -r $confdir/autofs ]; then
|
|
Packit |
8480eb |
. $confdir/autofs
|
|
Packit |
8480eb |
fi
|
|
Packit |
8480eb |
|
|
Packit |
8480eb |
function start() {
|
|
Packit |
8480eb |
echo -n "Starting $prog: "
|
|
Packit |
8480eb |
|
|
Packit |
8480eb |
# Make sure autofs4 module is loaded
|
|
Packit |
8480eb |
if ! grep -q autofs /proc/filesystems
|
|
Packit |
8480eb |
then
|
|
Packit |
8480eb |
# Try load the autofs4 module fail if we can't
|
|
Packit |
8480eb |
modprobe $MODULE >/dev/null 2>&1
|
|
Packit |
8480eb |
if [ $? -eq 1 ]
|
|
Packit |
8480eb |
then
|
|
Packit |
8480eb |
echo "Error: failed to load autofs4 module."
|
|
Packit |
8480eb |
return 1
|
|
Packit |
8480eb |
fi
|
|
Packit |
8480eb |
elif ([ -f /proc/modules ] && lsmod) | grep -q autofs[^4]
|
|
Packit |
8480eb |
then
|
|
Packit |
8480eb |
# wrong autofs filesystem module loaded
|
|
Packit |
8480eb |
echo
|
|
Packit |
8480eb |
echo "Error: autofs kernel module is loaded, autofs4 required"
|
|
Packit |
8480eb |
return 1
|
|
Packit |
8480eb |
fi
|
|
Packit |
8480eb |
|
|
Packit |
8480eb |
# Check misc device
|
|
Packit |
8480eb |
if [ -n "$USE_MISC_DEVICE" -a "x$USE_MISC_DEVICE" = "xyes" ]; then
|
|
Packit |
8480eb |
sleep 1
|
|
Packit |
8480eb |
if [ -e "/proc/misc" ]; then
|
|
Packit |
8480eb |
MINOR=`awk "/$DEVICE/ {print \\$1}" /proc/misc`
|
|
Packit |
8480eb |
if [ -n "$MINOR" -a ! -c "/dev/$DEVICE" ]; then
|
|
Packit |
8480eb |
mknod -m 0600 /dev/$DEVICE c 10 $MINOR
|
|
Packit |
8480eb |
fi
|
|
Packit |
8480eb |
fi
|
|
Packit |
8480eb |
if [ -x /sbin/restorecon -a -c /dev/$DEVICE ]; then
|
|
Packit |
8480eb |
/sbin/restorecon /dev/$DEVICE
|
|
Packit |
8480eb |
fi
|
|
Packit |
8480eb |
else
|
|
Packit |
8480eb |
if [ -c /dev/$DEVICE ]; then
|
|
Packit |
8480eb |
rm /dev/$DEVICE
|
|
Packit |
8480eb |
fi
|
|
Packit |
8480eb |
fi
|
|
Packit |
8480eb |
|
|
Packit |
8480eb |
$prog $OPTIONS
|
|
Packit |
8480eb |
RETVAL=$?
|
|
Packit |
8480eb |
if [ $RETVAL -eq 0 ] ; then
|
|
Packit |
8480eb |
echo "done."
|
|
Packit |
8480eb |
else
|
|
Packit |
8480eb |
echo "failed."
|
|
Packit |
8480eb |
fi
|
|
Packit |
8480eb |
return $RETVAL
|
|
Packit |
8480eb |
}
|
|
Packit |
8480eb |
|
|
Packit |
8480eb |
function stop() {
|
|
Packit |
8480eb |
echo -n $"Stopping $prog: "
|
|
Packit |
8480eb |
count=0
|
|
Packit |
8480eb |
while [ -n "`pidof $prog`" -a $count -lt 15 ] ; do
|
|
Packit |
8480eb |
killall -TERM $prog >& /dev/null
|
|
Packit |
8480eb |
RETVAL=$?
|
|
Packit |
8480eb |
[ $RETVAL = 0 -a -z "`pidof $prog`" ] || sleep 20
|
|
Packit |
8480eb |
count=`expr $count + 1`
|
|
Packit |
8480eb |
done
|
|
Packit |
8480eb |
if [ -z "`pidof $prog`" ] ; then
|
|
Packit |
8480eb |
echo "done."
|
|
Packit |
8480eb |
else
|
|
Packit |
8480eb |
echo "failed."
|
|
Packit |
8480eb |
fi
|
|
Packit |
8480eb |
return $RETVAL
|
|
Packit |
8480eb |
}
|
|
Packit |
8480eb |
|
|
Packit |
8480eb |
function restart() {
|
|
Packit |
8480eb |
stop
|
|
Packit |
8480eb |
while [ -n "`pidof $prog`" ] ; do
|
|
Packit |
8480eb |
sleep 5
|
|
Packit |
8480eb |
done
|
|
Packit |
8480eb |
start
|
|
Packit |
8480eb |
}
|
|
Packit |
8480eb |
|
|
Packit |
8480eb |
function reload() {
|
|
Packit |
8480eb |
pid=`pidof $prog`
|
|
Packit |
8480eb |
if [ -z $pid ]; then
|
|
Packit |
8480eb |
echo $"$prog not running"
|
|
Packit |
8480eb |
RETVAL=1
|
|
Packit |
8480eb |
else
|
|
Packit |
8480eb |
kill -HUP $pid 2> /dev/null
|
|
Packit |
8480eb |
echo $"Reloading maps"
|
|
Packit |
8480eb |
RETVAL=0
|
|
Packit |
8480eb |
fi
|
|
Packit |
8480eb |
return $RETVAL
|
|
Packit |
8480eb |
}
|
|
Packit |
8480eb |
|
|
Packit |
8480eb |
RETVAL=0
|
|
Packit |
8480eb |
|
|
Packit |
8480eb |
case "$1" in
|
|
Packit |
8480eb |
start)
|
|
Packit |
8480eb |
start
|
|
Packit |
8480eb |
;;
|
|
Packit |
8480eb |
forcestart)
|
|
Packit |
8480eb |
OPTIONS="$OPTIONS --force"
|
|
Packit |
8480eb |
start
|
|
Packit |
8480eb |
;;
|
|
Packit |
8480eb |
stop)
|
|
Packit |
8480eb |
stop
|
|
Packit |
8480eb |
;;
|
|
Packit |
8480eb |
restart)
|
|
Packit |
8480eb |
restart
|
|
Packit |
8480eb |
;;
|
|
Packit |
8480eb |
forcerestart)
|
|
Packit |
8480eb |
OPTIONS="$OPTIONS --force"
|
|
Packit |
8480eb |
restart
|
|
Packit |
8480eb |
;;
|
|
Packit |
8480eb |
reload)
|
|
Packit |
8480eb |
reload
|
|
Packit |
8480eb |
;;
|
|
Packit |
8480eb |
*)
|
|
Packit |
8480eb |
echo $"Usage: $0 {start|forcestart|stop|restart|forcerestart|reload}"
|
|
Packit |
8480eb |
exit 1;
|
|
Packit |
8480eb |
;;
|
|
Packit |
8480eb |
esac
|
|
Packit |
8480eb |
|
|
Packit |
8480eb |
exit $?
|
|
Packit |
8480eb |
|