cvsdist c905793
#!/bin/sh
cvsdist c905793
#
cvsdist c905793
# nfslock       This shell script takes care of starting and stopping
cvsdist c905793
#               the NFS file locking service.
cvsdist c905793
#
cvsdist c905793
# chkconfig: 345 14 86
cvsdist c905793
# description: NFS is a popular protocol for file sharing across \
0ce3b8d
#	       networks. This service provides NFS file locking \ 
0ce3b8d
#          functionality.
cvsdist c905793
# probe: true
cvsdist c905793
0ce3b8d
### BEGIN INIT INFO
0ce3b8d
# Provides: nfslock
0ce3b8d
# Required-Start: $network $syslog
0ce3b8d
# Required-Stop: $network $syslog
5b1bacb
# Default-Start: 3 4 5
0ce3b8d
# Default-Stop: 0 1 6
0ce3b8d
# Short-Description: Start up the NFS file locking sevice
0ce3b8d
# Description: NFS is a popular protocol for file sharing across \
0ce3b8d
#          networks. This service provides NFS file locking \ 
0ce3b8d
#          functionality.
0ce3b8d
### END INIT INFO
0ce3b8d
cvsdist c905793
# Source function library.
cvsdist c905793
. /etc/rc.d/init.d/functions
cvsdist c905793
cvsdist c905793
# Source networking configuration.
cvsdist c905793
if [ ! -f /etc/sysconfig/network ]; then
cafae3a
    exit 6
cvsdist c905793
fi
cvsdist c905793
cvsdist 9d8f355
# Check for and source configuration file
76623f8
LOCKDARG=""
76623f8
STATDARG=""
cvsdist 9d8f355
[ -f /etc/sysconfig/nfs ] && . /etc/sysconfig/nfs
cvsdist 9d8f355
adb2afe
[ -f /etc/sysconfig/network ] && . /etc/sysconfig/network
cvsdist 7a8b656
cvsdist 7a8b656
RETVAL=0
cvsdist 71d63d6
start() {
adb2afe
	# Check that networking is up.
adb2afe
	[ "${NETWORKING}" = "no" ] && exit 6
adb2afe
adb2afe
	[ -x /sbin/rpc.statd ] || exit 5 
adb2afe
adb2afe
	# Make sure the rpc.statd is not already running.
adb2afe
	if status rpc.statd > /dev/null ; then
adb2afe
		exit 0
adb2afe
	fi
adb2afe
	rm -f /var/lock/subsys/nfslock
4c886b7
4c886b7
	# Make sure locks are recovered
4c886b7
	rm -f /var/run/sm-notify.pid
4c886b7
cvsdist c905793
	# Start daemons.
7060f16
	# See if the kernel lockd should start up 
7060f16
	# listening on a particular port
7060f16
	#
9a95968
	if [ -n "$LOCKD_TCPPORT" -o -n "$LOCKD_UDPPORT" ]; then 
9a95968
		[ -x /sbin/modprobe ] && /sbin/modprobe lockd $LOCKDARG
9a95968
		[ -n "$LOCKD_TCPPORT" ] && \
9a95968
			/sbin/sysctl -w fs.nfs.nlm_tcpport=$LOCKD_TCPPORT >/dev/null 2>&1
9a95968
		[ -n "$LOCKD_UDPPORT" ] && \
9a95968
			/sbin/sysctl -w fs.nfs.nlm_udpport=$LOCKD_UDPPORT >/dev/null 2>&1
9a95968
	fi
76623f8
cvsdist 4f69ea4
	echo -n $"Starting NFS statd: "
ea858b4
	# Set statd's local hostname if defined
ea858b4
	[ -n "${STATD_HOSTNAME}" ] && STATDARG="$STATDARG -n ${STATD_HOSTNAME}"
ea858b4
cvsdist 9d8f355
	# See if a statd's ports has been defined
cvsdist 9d8f355
	[ -n "$STATD_PORT" ] && STATDARG="$STATDARG -p $STATD_PORT"
cvsdist 9d8f355
	[ -n "$STATD_OUTGOING_PORT" ] \
cvsdist 9d8f355
		&& STATDARG="$STATDARG -o $STATD_OUTGOING_PORT"
76623f8
9f6d694
	# See if we have an HA-callout program specified
9f6d694
	[ -n "$STATD_HA_CALLOUT" ] \
9f6d694
		&& STATDARG="$STATDARG -H $STATD_HA_CALLOUT"
cvsdist 9d8f355
	daemon rpc.statd "$STATDARG"
cvsdist 71d63d6
	RETVAL=$?
cvsdist c905793
	echo
cvsdist 71d63d6
	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/nfslock
cvsdist 5816d0e
    return $RETVAL
cvsdist 71d63d6
}
cvsdist 71d63d6
cvsdist 71d63d6
stop() {
cvsdist c905793
	# Stop daemons.
819e6dc
	if [ -n "`pidofproc lockd`" ]; then
819e6dc
		echo -n $"Stopping NFS locking: "
819e6dc
		killproc lockd -KILL
819e6dc
		echo
cvsdist 71d63d6
	fi
7060f16
cvsdist 4f69ea4
	echo -n $"Stopping NFS statd: "
cvsdist c905793
	killproc rpc.statd
f4efa10
	RETVAL=$?
cvsdist c905793
	echo
f4efa10
	rm -f /var/lock/subsys/nfslock
c0c131b
	rm -f /var/run/sm-notify.pid
cvsdist 71d63d6
	return $RETVAL
cvsdist 71d63d6
}
cvsdist 71d63d6
cvsdist 71d63d6
# See how we were called.
cvsdist 71d63d6
case "$1" in
cvsdist 71d63d6
  start)
cvsdist 71d63d6
        start
cvsdist 71d63d6
	;;
cvsdist 71d63d6
  stop)
cvsdist 71d63d6
  	stop
cvsdist c905793
	;;
cvsdist c905793
  status)
cvsdist c905793
	status rpc.statd
76623f8
	RETVAL=$?
cvsdist c905793
	;;
cvsdist c905793
  restart)
76623f8
	stop
cvsdist 71d63d6
	start
cvsdist c905793
	;;
cvsdist c905793
  probe)
cvsdist c905793
	if [ ! -f /var/lock/subsys/nfslock ] ; then
cvsdist 9d8f355
	  echo $"start"; exit 0
cvsdist c905793
	fi
76623f8
	/sbin/pidof rpc.statd >/dev/null 2>&1
76623f8
	if [ $? = 1 ] ; then
cvsdist 9d8f355
	  echo $"restart"; exit 0
cvsdist c905793
	fi
cvsdist c905793
	;;
cvsdist 9d8f355
  condrestart)
cvsdist 9d8f355
  	[ -f /var/lock/subsys/nfslock ] && {
cvsdist 9d8f355
		stop
cvsdist 9d8f355
		start
1ae9fb3
		RETVAL=$?
1ae9fb3
	}
1ae9fb3
	;;
1ae9fb3
  condstop)
1ae9fb3
  	[ -f /var/lock/subsys/nfslock ] && {
1ae9fb3
		stop
1ae9fb3
		RETVAL=$?
cvsdist 9d8f355
	}
cvsdist 9d8f355
	;;
cvsdist c905793
  *)
1ae9fb3
	echo $"Usage: $0 {start|stop|status|restart|probe|condrestart|condstop}"
cafae3a
	RETVAL=3
cafae3a
	;;
cvsdist c905793
esac
cvsdist c905793
f4efa10
exit $RETVAL