mcinglis / rpms / nfs-utils

Forked from rpms/nfs-utils 2 years ago
Clone
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
0fb3f74
# Required-Start: $network $syslog $portmap
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
0fb3f74
uid=`id | cut -d\( -f1 | cut -d= -f2`
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
0fb3f74
	# Only root can start the service
0fb3f74
	[ $uid -ne 0 ] && exit 4
0fb3f74
adb2afe
	# Make sure the rpc.statd is not already running.
adb2afe
	if status rpc.statd > /dev/null ; then
adb2afe
		exit 0
adb2afe
	fi
0fb3f74
	rm -f /var/lock/subsys/rpc.statd
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
0fb3f74
	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/rpc.statd
cvsdist 5816d0e
    return $RETVAL
cvsdist 71d63d6
}
cvsdist 71d63d6
cvsdist 71d63d6
stop() {
0fb3f74
	# Only root can stop the service
0fb3f74
	[ $uid -ne 0 ] && exit 4
0fb3f74
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
0fb3f74
	rm -f /var/lock/subsys/rpc.statd
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
	;;
0fb3f74
  restart | force-reload | reload)
76623f8
	stop
cvsdist 71d63d6
	start
cvsdist c905793
	;;
cvsdist c905793
  probe)
0fb3f74
	if [ ! -f /var/lock/subsys/rpc.statd ] ; 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
	;;
0fb3f74
  condrestart | try-restart)
0fb3f74
  	[ -f /var/lock/subsys/rpc.statd ] && {
cvsdist 9d8f355
		stop
cvsdist 9d8f355
		start
1ae9fb3
		RETVAL=$?
1ae9fb3
	}
1ae9fb3
	;;
1ae9fb3
  condstop)
0fb3f74
  	[ -f /var/lock/subsys/rpc.statd ] && {
1ae9fb3
		stop
1ae9fb3
		RETVAL=$?
cvsdist 9d8f355
	}
cvsdist 9d8f355
	;;
cvsdist c905793
  *)
0fb3f74
	echo $"Usage: $0 {start|stop|status|restart|reload|force-reload|probe|condrestart|try-restart|condstop}"
0fb3f74
	RETVAL=2
cafae3a
	;;
cvsdist c905793
esac
cvsdist c905793
f4efa10
exit $RETVAL