diff options
author | Qiang Chen <qiang.chen@windriver.com> | 2013-10-22 11:03:59 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-10-26 16:02:02 +0100 |
commit | 37e70a28e9cfc773bd70f09d7129295ce891ae18 (patch) | |
tree | 753028b98d1da43952f46126a504119cf6b2968b | |
parent | d6f3cb0d71c3b6739365f085b6d5a5e20f329fa5 (diff) | |
download | openembedded-core-37e70a28e9cfc773bd70f09d7129295ce891ae18.tar.gz openembedded-core-37e70a28e9cfc773bd70f09d7129295ce891ae18.tar.bz2 openembedded-core-37e70a28e9cfc773bd70f09d7129295ce891ae18.zip |
nfs-utils: Stop rpc.statd correctly
An incorrect process name in the nfsserver initscript prevented
rpc.statd from being shut down.
root@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@qemux86-64:~# ps | grep rpc.statd
650 root 10532 S /usr/sbin/rpc.statd
654 root 4720 S grep rpc.statd
root@qemux86-64:~# /etc/init.d/nfsserver stop
stopping statd: done
stopping mountd: done
stopping nfsd: done
root@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@windriver.com>
Signed-off-by: Qiang Chen <qiang.chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/recipes-connectivity/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 1ac6fec023..8ee8d0bb50 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 } #---------------------------------------------------------------------- |