Blame redhat/autofs.init.in

Packit 8480eb
#!/bin/bash
Packit 8480eb
#
Packit 8480eb
# rc file for automount using a Sun-style "master map".
Packit 8480eb
#
Packit 8480eb
# chkconfig: 345 28 72
Packit 8480eb
# processname: /usr/sbin/automount
Packit 8480eb
# config: /etc/auto.master
Packit 8480eb
# description: Automounts filesystems on demand
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
initdir=@@initdir@@
Packit 8480eb
confdir=@@autofsconfdir@@
Packit 8480eb
Packit 8480eb
test -e $DAEMON || exit 0
Packit 8480eb
Packit 8480eb
if [ -r $initdir/functions ]; then
Packit 8480eb
	. $initdir/functions
Packit 8480eb
fi
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
	# Make sure autofs4 module is loaded
Packit 8480eb
	if ! grep -q autofs /proc/filesystems
Packit 8480eb
	then
Packit 8480eb
		echo -n "Loading $MODULE: "
Packit 8480eb
		# Try load the autofs4 module fail if we can't
Packit 8480eb
		modprobe $MODULE >/dev/null 2>&1
Packit 8480eb
		RETVAL=$?
Packit 8480eb
		if [ $RETVAL -eq 1 ]
Packit 8480eb
		then
Packit 8480eb
			failure "Load $MODULE"
Packit 8480eb
			echo
Packit 8480eb
			return $RETVAL
Packit 8480eb
		else
Packit 8480eb
			success "Load $MODULE"
Packit 8480eb
			echo
Packit 8480eb
		fi
Packit 8480eb
	elif ([ -f /proc/modules ] && lsmod) | grep -q autofs[^4]
Packit 8480eb
	then
Packit 8480eb
		RETVAL=1
Packit 8480eb
		failure "Load $MODULE"
Packit 8480eb
		echo
Packit 8480eb
		return $RETVAL
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
	echo -n $"Starting $prog: "
Packit 8480eb
	$prog $OPTIONS --pid-file @@autofspiddir@@/autofs.pid
Packit 8480eb
	RETVAL=$?
Packit 8480eb
	if [ $RETVAL -eq 0 ] ; then
Packit 8480eb
		success "$prog startup"
Packit 8480eb
	else
Packit 8480eb
		failure "$prog startup"
Packit 8480eb
	fi
Packit 8480eb
	if [ $RETVAL -eq 0 ]; then
Packit 8480eb
		touch /var/lock/subsys/autofs
Packit 8480eb
	else
Packit 8480eb
		RETVAL=1
Packit 8480eb
	fi
Packit 8480eb
	echo
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
		killproc $prog -TERM >& /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 [ $RETVAL -eq 0 ]; then
Packit 8480eb
		rm -f /var/lock/subsys/autofs
Packit 8480eb
	else
Packit 8480eb
		RETVAL=1
Packit 8480eb
	fi
Packit 8480eb
	if [ -n "`pidof $prog`" ] ; then
Packit 8480eb
		failure "$prog shutdown"
Packit 8480eb
	else
Packit 8480eb
		success "$prog shutdown"
Packit 8480eb
	fi
Packit 8480eb
	echo
Packit 8480eb
	return $RETVAL
Packit 8480eb
}
Packit 8480eb
Packit 8480eb
function restart() {
Packit 8480eb
	status autofs > /dev/null 2>&1
Packit 8480eb
	if [ $? -eq 0 ]; then
Packit 8480eb
		stop
Packit 8480eb
		if [ -n "`pidof $prog`" ]; then
Packit 8480eb
			# If we failed to stop, try at least one more time
Packit 8480eb
			# after waiting a little while
Packit 8480eb
			sleep 20
Packit 8480eb
			stop
Packit 8480eb
			auto_pid=`pidof $prog`
Packit 8480eb
			if [ -n "$auto_pid" ]; then
Packit 8480eb
				kill -9 $auto_pid
Packit 8480eb
			fi
Packit 8480eb
		fi
Packit 8480eb
	fi
Packit 8480eb
	start
Packit 8480eb
}
Packit 8480eb
Packit 8480eb
function reload() {
Packit 8480eb
	if [ ! -f /var/lock/subsys/autofs ]; then
Packit 8480eb
		echo $"$prog not running"
Packit 8480eb
		RETVAL=1
Packit 8480eb
		return $RETVAL
Packit 8480eb
	fi
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
function usage_message() {
Packit 8480eb
	echo $"Usage: $0 {start|forcestart|stop|status|restart|force-reload|forcerestart|reload|condrestart|try-restart|usage}"
Packit 8480eb
}
Packit 8480eb
Packit 8480eb
RETVAL=0
Packit 8480eb
Packit 8480eb
# allow non-root users to read status / usage
Packit 8480eb
Packit 8480eb
case "$1" in
Packit 8480eb
	status)
Packit 8480eb
		status -p @@autofspiddir@@/autofs.pid -l autofs $prog
Packit 8480eb
		exit $?;
Packit 8480eb
		;;
Packit 8480eb
	usage)
Packit 8480eb
		usage_message
Packit 8480eb
		exit 0;
Packit 8480eb
		;;
Packit 8480eb
esac
Packit 8480eb
Packit 8480eb
# Only the root user may change the service status
Packit 8480eb
if [ `id -u` -ne 0 ] && [ "$1" != "status" ]; then
Packit 8480eb
	echo "insufficient privilege to change service status"
Packit 8480eb
	exit 4
Packit 8480eb
fi
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|force-reload)
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
	condrestart|try-restart)
Packit 8480eb
		if [ -f /var/lock/subsys/autofs ]; then
Packit 8480eb
			restart
Packit 8480eb
		fi
Packit 8480eb
		;;
Packit 8480eb
	*)
Packit 8480eb
		usage_message
Packit 8480eb
		exit 2
Packit 8480eb
		;;
Packit 8480eb
esac
Packit 8480eb
Packit 8480eb
exit $?
Packit 8480eb