[oe-commits] Qiang Chen : nfs-utils: Stop rpc.statd correctly
git at git.openembedded.org
git at git.openembedded.org
Sun Oct 27 11:27:46 UTC 2013
Module: openembedded-core.git
Branch: master
Commit: 37e70a28e9cfc773bd70f09d7129295ce891ae18
URL: http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=37e70a28e9cfc773bd70f09d7129295ce891ae18
Author: Qiang Chen <qiang.chen at windriver.com>
Date: Tue Oct 22 11:03:59 2013 +0800
nfs-utils: Stop rpc.statd correctly
An incorrect process name in the nfsserver initscript prevented
rpc.statd from being shut down.
root at qemux86-64:~# /etc/init.d/nfsserver start
creating NFS state directory: done
starting 8 nfsd kernel threads: done
starting mountd: done
starting statd: done
root at qemux86-64:~# ps | grep rpc.statd
650 root 10532 S /usr/sbin/rpc.statd
654 root 4720 S grep rpc.statd
root at qemux86-64:~# /etc/init.d/nfsserver stop
stopping statd: done
stopping mountd: done
stopping nfsd: done
root at qemux86-64:~# ps | grep rpc.statd
650 root 10532 S /usr/sbin/rpc.statd
662 root 4720 S grep rpc.statd
As this daemon drops a pid file,simply use that instead.
Also add some initialization checks so the daemons are not
left partially started in the absence of kernel nfsd support.
Signed-off-by: Andy Ross <andy.ross at windriver.com>
Signed-off-by: Qiang Chen <qiang.chen at windriver.com>
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
.../nfs-utils/nfs-utils/nfsserver | 18 ++++++++++++++----
1 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfsserver b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfsserver
index 1ac6fec..8ee8d0b 100644
--- a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfsserver
+++ b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfsserver
@@ -25,6 +25,7 @@ test -r /etc/default/nfsd && . /etc/default/nfsd
test -x "$NFS_MOUNTD" || NFS_MOUNTD=/usr/sbin/rpc.mountd
test -x "$NFS_NFSD" || NFS_NFSD=/usr/sbin/rpc.nfsd
test -x "$NFS_STATD" || NFS_STATD=/usr/sbin/rpc.statd
+test -z "$STATD_PID" && STATD_PID=/var/run/rpc.statd.pid
#
# The user mode program must also exist (it just starts the kernel
# threads using the kernel module code).
@@ -77,6 +78,17 @@ stop_mountd(){
#
#nfsd
start_nfsd(){
+ modprobe -q nfsd
+ grep -q nfsd /proc/filesystems || {
+ echo NFS daemon support not enabled in kernel
+ exit 1
+ }
+ grep -q nfsd /proc/mounts || mount -t nfsd nfsd /proc/fs/nfsd
+ grep -q nfsd /proc/mounts || {
+ echo nfsd filesystem could not be mounted at /proc/fs/nfsd
+ exit 1
+ }
+
echo -n "starting $1 nfsd kernel threads: "
start-stop-daemon --start --exec "$NFS_NFSD" -- "$@"
echo done
@@ -115,14 +127,12 @@ stop_nfsd(){
#statd
start_statd(){
echo -n "starting statd: "
- start-stop-daemon --start --exec "$NFS_STATD"
+ start-stop-daemon --start --exec "$NFS_STATD" --pidfile "$STATD_PID"
echo done
}
stop_statd(){
- # WARNING: this kills any process with the executable
- # name 'statd'.
echo -n 'stopping statd: '
- start-stop-daemon --stop --quiet --signal 1 --name statd
+ start-stop-daemon --stop --quiet --signal 1 --pidfile "$STATD_PID"
echo done
}
#----------------------------------------------------------------------
More information about the Openembedded-commits
mailing list