]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - etc/redhat/nfslock.init
fix fd bug
[nfs-utils.git] / etc / redhat / nfslock.init
index 9e9a2c914d15bf9fcca53e1cef6bd1be9d8cfd1d..2f99c45a0f2498afbdea0388601d1bbaa47554c9 100755 (executable)
@@ -3,7 +3,7 @@
 # nfslock       This shell script takes care of starting and stopping
 #               the NFS file locking service.
 #
-# chkconfig: 345 60 20
+# chkconfig: 345 60 86
 # description: NFS is a popular protocol for file sharing across \
 #             TCP/IP networks. This service provides NFS file \
 #             locking functionality.
@@ -25,6 +25,12 @@ fi
 [ -x /sbin/rpc.lockd ] || exit 0
 [ -x /sbin/rpc.statd ] || exit 0
 
+if [ -n "${STATD_HOSTNAME}" ]; then
+    STATDARG="-n ${STATD_HOSTNAME}"
+else
+    STATDARG=""
+fi
+
 # See how we were called.
 case "$1" in
   start)
@@ -34,16 +40,25 @@ case "$1" in
        daemon rpc.lockd
        echo
        echo -n "Starting NFS statd: "
-       daemon rpc.statd
+       daemon rpc.statd ${STATDARG}
        echo
        touch /var/lock/subsys/nfslock
        ;;
   stop)
        # Stop daemons.
        echo "Shutting down NFS file locking services: "
-       echo -n "Shutting down NFS lockd: "
-       killproc lockd
-       echo
+       pidlist=`pidofproc lockd`
+       if [ -n "$pidlist" ]; then
+               pid=
+               for apid in $pidlist ; do
+                       [ -f /proc/$apid/exe ] && pid="$pid $apid"
+               done
+               if [ -n "$pid" ]; then
+                       echo -n "Shutting down NFS lockd: "
+                       killproc lockd
+                       echo
+               fi
+       fi
        echo -n "Shutting down NFS statd: "
        killproc rpc.statd
        echo
@@ -54,15 +69,8 @@ case "$1" in
        status rpc.statd
        ;;
   restart)
-       echo -n "Restarting NFS file locking services: "
-       echo -n "rpc.lockd "
-       killproc lockd
-       daemon rpc.lockd
-       echo -n "rpc.statd "
-       killproc rpc.statd
-       daemon rpc.statd
-       touch /var/lock/subsys/nfslock
-       echo "done."
+       $0 stop
+       $0 start
        ;;
   probe)
        if [ ! -f /var/lock/subsys/nfslock ] ; then