]> code.ossystems Code Review - openembedded-core.git/commitdiff
runqemu-export-rootfs: improve rpcbind error detection
authorScott Garman <scott.a.garman@intel.com>
Wed, 3 Oct 2012 22:13:52 +0000 (15:13 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 4 Oct 2012 13:10:21 +0000 (14:10 +0100)
mountd requires rpcbind or portmap. Check that one of these
services is running before doing anything else, and report
a user-friendly error when they are not found.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
scripts/runqemu-export-rootfs

index ca79af340df8ea567e419d7a354231e2eb2b0d87..90edc8a2169930eee0228d0c3063906615e22ac4 100755 (executable)
@@ -100,6 +100,21 @@ fi
 # See how we were called.
 case "$1" in
   start)
+       PORTMAP_RUNNING=`ps -ef | grep portmap | grep -v grep`
+       RPCBIND_RUNNING=`ps -ef | grep rpcbind | grep -v grep`
+       if [[ "x$PORTMAP_RUNNING" = "x" && "x$RPCBIND_RUNNING" = "x" ]]; then
+               echo "======================================================="
+               echo "Error: neither rpcbind nor portmap appear to be running"
+               echo "Please install and start one of these services first"
+               echo "======================================================="
+               echo "Tip: for recent Ubuntu hosts, run:"
+               echo "  sudo apt-get install rpcbind"
+               echo "Then add OPTIONS=\"-i -w\"  to /etc/default/rpcbind and run"
+               echo "  sudo service portmap restart"
+
+               exit 1
+       fi
+
        echo "Starting User Mode rpc.mountd"
        echo "  $PSEUDO $PSEUDO_OPTS $OECORE_NATIVE_SYSROOT/usr/sbin/rpc.mountd $MOUNTD_OPTS"
        $PSEUDO $PSEUDO_OPTS $OECORE_NATIVE_SYSROOT/usr/sbin/rpc.mountd $MOUNTD_OPTS
@@ -107,25 +122,25 @@ case "$1" in
                echo "====================="
                echo "Error starting MOUNTD"
                echo "====================="
-               ps -ef | grep -v grep | grep rpcbind 2>&1 > /dev/null
-               if [ $? = 0 ] ; then
+               if [ ! "x$RPCBIND_RUNNING" = "x" ] ; then
                        echo "  If you see an error above that says:"
                        echo "    RPC: Authentication error; why = Client credential too weak"
-                       echo "  You need to change the startup of rpcbind"
-                       echo "  on your host by doing the following as root:"
+                       echo "  You need to add the -i option when running rpcbind"
                        echo "==============================================="
-                       echo "  According to /etc/sysconfig/rpcbind, then "
-                       echo "    echo RPCBIND_ARGS=-i >> /etc/sysconfig/rpcbind"
+                       echo "For recent Fedora/RedHat hosts:"
+                       echo "Add RPCBIND_ARGS=-i to /etc/sysconfig/rpcbind"
                        echo "  or"
-                       echo "    echo RPCBIND_OPTIONS=-i >> /etc/sysconfig/rpcbind"
-                       echo "    /etc/init.d/rpcbind restart"
+                       echo "Add RPCBIND_OPTIONS=-i to /etc/sysconfig/rpcbind"
+                       echo "Then run as root: /etc/init.d/rpcbind restart"
                        echo "==============================================="
-                       echo "For Ubuntu 11.10 hosts"
+                       echo "For recent Debian/Ubuntu hosts:"
                        echo "Add OPTIONS=\"-i -w\"  to /etc/default/rpcbind"
                        echo "sudo service portmap restart"
                fi
+
                exit 1
        fi
+
        echo "Starting User Mode nfsd"
        echo "  $PSEUDO $PSEUDO_OPTS $OECORE_NATIVE_SYSROOT/usr/sbin/rpc.nfsd $NFSD_OPTS"
        $PSEUDO $PSEUDO_OPTS $OECORE_NATIVE_SYSROOT/usr/sbin/rpc.nfsd $NFSD_OPTS