# independent fashion.
#
# description: starts and stops nfs server services
-# chkconfig: 2345 99 01
+# chkconfig: 2345 60 20
#
# Copyright (c) 2000-2001 Mission Critical Linux, Inc.
#
# Handle how we were called.
case "$1" in
start)
+ if [ -d /proc/fs/nfsd -a ! -f /proc/fs/nfsd/exports ] ;
+ then
+ /bin/mount -t nfsd nfsd /proc/fs/nfsd
+ fi
echo -n "Exporting directories for $DESC..."
$EXPORTFS -r
echo "done."
echo -n "Starting $NFSD: "
startdaemon $PREFIX$NFSD $RPCNFSDCOUNT
- if /usr/sbin/rpcinfo -u localhost nfs 3 &>/dev/null
+ # Disable NFSv3 on mountd if we don't have NFSv3
+ ClearAddr=
+ if [ -f /proc/net/rpc/auth.unix.ip/channel ] ; then
+ if grep -s 127.0.0.1 /proc/net/rpc/auth.unix.ip/content > /dev/null ; then
+ : address already known
+ else
+ echo nfsd 127.0.0.1 2147483647 localhost > /proc/net/rpc/auth.unix.ip/channel
+ ClearAddr=
+ fi
+ fi
+ rpcinfo -u localhost nfs 3 &>/dev/null
+ if [ "$?" != "0" ]
then
RPCMOUNTDOPTS="$RPCMOUNTDOPTS --no-nfs-version 3"
fi
+ if [ -n "$ClearAddr" ]; then
+ echo nfsd 127.0.0.1 1 > /proc/net/rpc/auth.unix.ip/channel
+ fi
+
echo -n "Starting $MOUNTD: "
startdaemon $MOUNTD $RPCMOUNTDOPTS
echo "Unexporting directories for $DESC..."
$EXPORTFS -au
+ if [ -f /proc/fs/nfsd/exports ] ; then /bin/umount -t nfsd nfsd /proc/fs/nfsd ; fi
rm -f /var/lock/subsys/$SCRIPT_NAME
echo "done."
;;
restart)
$0 stop
+ sleep 1
$0 start
;;