From a9bf4f82852975b0b627f61ceb2d23401f630805 Mon Sep 17 00:00:00 2001 From: Martin Schwenke Date: Tue, 11 Jan 2011 17:06:48 +1100 Subject: [PATCH] Eventscripts: work around NFS restart failure under load. "service nfs restart" can fail. To stop nfsd it sends a SIGINT and nfsd might take a while to process it if the system is loaded. Starting nfsd may then fail because resources are still in use. This does some /proc magic to tell nfsd to do no more processing. It then runs service stop, kills nfsd with SIGKILL, and then runs service start. This is much less likely to fail. Signed-off-by: Martin Schwenke --- config/functions | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/config/functions b/config/functions index 4dc645b7..599e46a5 100755 --- a/config/functions +++ b/config/functions @@ -375,7 +375,10 @@ startstop_nfs() { service nfsserver stop > /dev/null 2>&1 ;; restart) - service nfsserver restart + echo 0 >/proc/fs/nfsd/threads + service nfsserver stop > /dev/null 2>&1 + pkill -9 nfsd + service nfsserver start ;; esac ;; @@ -390,8 +393,12 @@ startstop_nfs() { service nfslock stop > /dev/null 2>&1 ;; restart) - service nfslock restart - service nfs restart + echo 0 >/proc/fs/nfsd/threads + service nfs stop > /dev/null 2>&1 + service nfslock stop > /dev/null 2>&1 + pkill -9 nfsd + service nfslock start + service nfs start ;; esac ;; -- 2.34.1