]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - etc/redhat/nfslock.init
Ignore SIGPIPE in statd
[nfs-utils.git] / etc / redhat / nfslock.init
index 1442637816a34ece25f596b3f9e51b943168ec99..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.
@@ -22,8 +22,14 @@ fi
 # Check that networking is up.
 [ ${NETWORKING} = "no" ] && exit 0
 
-[ -x /usr/sbin/rpc.lockd ] || exit 0
-[ -x /usr/sbin/rpc.statd ] || exit 0
+[ -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
@@ -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