diff options
| author | NeilBrown <neilb@suse.de> | 2025-05-28 10:08:52 +0800 |
|---|---|---|
| committer | Steve Sakoman <steve@sakoman.com> | 2025-06-04 09:06:31 -0700 |
| commit | 81e0dc80d72d66b7f15a34c0da7a0a8c58809056 (patch) | |
| tree | 720d486eb3119ec7320010562dd421fdd0ec27e4 /meta/recipes-connectivity | |
| parent | 0238a535e8c7303e2df03be79b2fbe3862701100 (diff) | |
| download | poky-81e0dc80d72d66b7f15a34c0da7a0a8c58809056.tar.gz | |
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 <neil@brown.name>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 7b09ad289a36)
Signed-off-by: Haixiao Yan <haixiao.yan.cn@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Diffstat (limited to 'meta/recipes-connectivity')
| -rw-r--r-- | meta/recipes-connectivity/nfs-utils/nfs-utils/nfsserver | 28 |
1 files 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(){ | |||
| 66 | start-stop-daemon --start --exec "$NFS_NFSD" -- "$@" | 66 | start-stop-daemon --start --exec "$NFS_NFSD" -- "$@" |
| 67 | echo done | 67 | echo done |
| 68 | } | 68 | } |
| 69 | delay_nfsd(){ | ||
| 70 | for delay in 0 1 2 3 4 5 6 7 8 9 | ||
| 71 | do | ||
| 72 | if pidof nfsd >/dev/null | ||
| 73 | then | ||
| 74 | echo -n . | ||
| 75 | sleep 1 | ||
| 76 | else | ||
| 77 | return 0 | ||
| 78 | fi | ||
| 79 | done | ||
| 80 | return 1 | ||
| 81 | } | ||
| 82 | stop_nfsd(){ | 69 | stop_nfsd(){ |
| 83 | # WARNING: this kills any process with the executable | ||
| 84 | # name 'nfsd'. | ||
| 85 | echo -n 'stopping nfsd: ' | 70 | echo -n 'stopping nfsd: ' |
| 86 | start-stop-daemon --stop --quiet --signal 1 --name nfsd | 71 | $NFS_NFSD 0 |
| 87 | if delay_nfsd || { | 72 | if pidof nfsd |
| 88 | echo failed | ||
| 89 | echo ' using signal 9: ' | ||
| 90 | start-stop-daemon --stop --quiet --signal 9 --name nfsd | ||
| 91 | delay_nfsd | ||
| 92 | } | ||
| 93 | then | 73 | then |
| 94 | echo done | ||
| 95 | else | ||
| 96 | echo failed | 74 | echo failed |
| 75 | else | ||
| 76 | echo done | ||
| 97 | fi | 77 | fi |
| 98 | } | 78 | } |
| 99 | 79 | ||
