From 81e0dc80d72d66b7f15a34c0da7a0a8c58809056 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Wed, 28 May 2025 10:08:52 +0800 Subject: nfs-utils: don't use signals to shut down nfs server. Since Linux v2.4 it has been possible to stop all NFS server by running rpc.nfsd 0 i.e. by requesting that zero threads be running. This is preferred as it doesn't risk killing some other process which happens to be called "nfsd". Since Linux v6.6 - and other stable kernels to which Commit: 390390240145 ("nfsd: don't allow nfsd threads to be signalled.") has been backported - sending a signal no longer works to stop nfs server threads. This patch changes the nfsserver script to use "rpc.nfsd 0" to stop server threads. (From OE-Core rev: 415e73d53e5342f3f6ff6acd521ded2df3fbca1f) Signed-off-by: NeilBrown Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie (cherry picked from commit 7b09ad289a36) Signed-off-by: Haixiao Yan Signed-off-by: Steve Sakoman --- .../nfs-utils/nfs-utils/nfsserver | 28 ++++------------------ 1 file changed, 4 insertions(+), 24 deletions(-) diff --git a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfsserver b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfsserver index 0f5747cc6d..4d78312929 100644 --- a/meta/recipes-connectivity/nfs-utils/nfs-utils/nfsserver +++ b/meta/recipes-connectivity/nfs-utils/nfs-utils/nfsserver @@ -66,34 +66,14 @@ start_nfsd(){ start-stop-daemon --start --exec "$NFS_NFSD" -- "$@" echo done } -delay_nfsd(){ - for delay in 0 1 2 3 4 5 6 7 8 9 - do - if pidof nfsd >/dev/null - then - echo -n . - sleep 1 - else - return 0 - fi - done - return 1 -} stop_nfsd(){ - # WARNING: this kills any process with the executable - # name 'nfsd'. echo -n 'stopping nfsd: ' - start-stop-daemon --stop --quiet --signal 1 --name nfsd - if delay_nfsd || { - echo failed - echo ' using signal 9: ' - start-stop-daemon --stop --quiet --signal 9 --name nfsd - delay_nfsd - } + $NFS_NFSD 0 + if pidof nfsd then - echo done - else echo failed + else + echo done fi } -- cgit v1.2.3-54-g00ecf