]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - debian/nfs-kernel-server.init
Install osd_login (part of the autologin feature). - Add open-iscsi and watchdog...
[nfs-utils.git] / debian / nfs-kernel-server.init
index 84f9c4dcb1d0fec982f3d001bd70cf0be714ce5f..a5b41370ae9f5b7e51af300798cf450add29b6b1 100644 (file)
@@ -1,9 +1,10 @@
-#!/bin/sh
+#!/bin/bash
 
 ### BEGIN INIT INFO
 # Provides:          nfs-kernel-server
-# Required-Start:    nfs-common $portmap $time
-# Required-Stop:     $portmap $time
+# Required-Start:    $remote_fs nfs-common $portmap $time
+# Required-Stop:     $remote_fs nfs-common $portmap $time
+# Should-Start:      $named
 # Default-Start:     2 3 4 5
 # Default-Stop:      0 1 6
 # Short-Description: Kernel NFS server support
@@ -59,12 +60,12 @@ do_mount() {
 # See how we were called.
 case "$1" in
   start)
-       if [ -f /etc/exports ]
+       if [ -f /etc/exports ] && grep -q '^[[:space:]]*[^#]*/' /etc/exports
        then
                do_modprobe nfsd
 
                # See if our running kernel supports the NFS kernel server
-               if [ -f /proc/kallsyms ] && ! grep -qE 'init_nf(sd|     )' /proc/kallsyms; then
+               if ! grep -E -qs "[[:space:]]nfsd\$" /proc/filesystems; then
                        log_warning_msg "Not starting $DESC: no support in current kernel."
                        exit 0
                fi
@@ -72,20 +73,32 @@ case "$1" in
                do_mount nfsd $PROCNFSD_MOUNTPOINT || NEED_SVCGSSD=no
                log_begin_msg "Exporting directories for $DESC..."
                $PREFIX/sbin/exportfs -r
-               if [ $? != 0 ]; then
-                       log_end_msg $?
-                       exit $?
+               RET=$?
+               if [ $RET != 0 ]; then
+                       log_end_msg $RET
+                       exit $RET
                fi
                log_end_msg 0
 
                log_daemon_msg "Starting $DESC"
                log_progress_msg "nfsd"
+               
+               # See if rpcbind is running
+               /usr/sbin/rpcinfo -p >/dev/null 2>&1
+               RET=$?
+               if [ $RET != 0 ]; then
+                   echo
+                   log_warning_msg "Not starting: portmapper is not running"
+                   exit 0
+               fi
+
                start-stop-daemon --start --oknodo --quiet \
                    --nicelevel $RPCNFSDPRIORITY \
                    --exec $PREFIX/sbin/rpc.nfsd -- $RPCNFSDCOUNT
-               if [ $? != 0 ]; then
-                       log_end_msg $?
-                       exit $?
+               RET=$?
+               if [ $RET != 0 ]; then
+                       log_end_msg $RET
+                       exit $RET
                fi
 
                # make sure 127.0.0.1 is a valid source for requests
@@ -108,18 +121,20 @@ case "$1" in
                        log_progress_msg "svcgssd"
                        start-stop-daemon --start --oknodo --quiet \
                            --exec $PREFIX/sbin/rpc.svcgssd -- $RPCSVCGSSDOPTS
-                       if [ $? != 0 ]; then
-                               log_end_msg $?
-                               exit $?
+                       RET=$?
+                       if [ $RET != 0 ]; then
+                               log_end_msg $RET
+                               exit $RET
                        fi
                fi
 
                log_progress_msg "mountd"
                start-stop-daemon --start --oknodo --quiet \
                    --exec $PREFIX/sbin/rpc.mountd -- $RPCMOUNTDOPTS
-               if [ $? != 0 ]; then
-                       log_end_msg $?
-                       exit $?
+               RET=$?
+               if [ $RET != 0 ]; then
+                       log_end_msg $RET
+                       exit $RET
                fi
 
                log_end_msg 0
@@ -130,40 +145,44 @@ case "$1" in
 
   stop)
        log_daemon_msg "Stopping $DESC"
-       
+
        log_progress_msg "mountd"
        start-stop-daemon --stop --oknodo --quiet \
            --name rpc.mountd --user 0
-       if [ $? != 0 ]; then
-               log_end_msg $?
-               exit $?
+       RET=$?
+       if [ $RET != 0 ]; then
+               log_end_msg $RET
+               exit $RET
        fi
-               
+
        if [ "$NEED_SVCGSSD" = "yes" ]; then
                log_progress_msg "svcgssd"
                start-stop-daemon --stop --oknodo --quiet \
                    --name rpc.svcgssd --user 0
-               if [ $? != 0 ]; then
-                       log_end_msg $?
-                       exit $?
+               RET=$?
+               if [ $RET != 0 ]; then
+                       log_end_msg $RET
+                       exit $RET
                fi
        fi
 
        log_progress_msg "nfsd"
        start-stop-daemon --stop --oknodo --quiet \
            --name nfsd --user 0 --signal 2
-       if [ $? != 0 ]; then
-               log_end_msg $?
-               exit $?
+       RET=$?
+       if [ $RET != 0 ]; then
+               log_end_msg $RET
+               exit $RET
        fi
 
        log_end_msg 0
 
        log_begin_msg "Unexporting directories for $DESC..."
        $PREFIX/sbin/exportfs -au
-       if [ $? != 0 ]; then
-               log_end_msg $?
-               exit $?
+       RET=$?
+       if [ $RET != 0 ]; then
+               log_end_msg $RET
+               exit $RET
        fi
        log_end_msg 0
 
@@ -187,8 +206,9 @@ case "$1" in
   reload | force-reload)
        log_begin_msg "Re-exporting directories for $DESC..."
        $PREFIX/sbin/exportfs -r
-       log_end_msg $?
-       exit $?
+       RET=$?
+       log_end_msg $RET
+       exit $RET
        ;;
 
   restart)