about summary refs log tree commit diff
diff options
context:
space:
mode:
-rwxr-xr-xservices/nfs-server/finish2
-rwxr-xr-xservices/nfs-server/run9
2 files changed, 8 insertions, 3 deletions
diff --git a/services/nfs-server/finish b/services/nfs-server/finish
index e392d80..696e778 100755
--- a/services/nfs-server/finish
+++ b/services/nfs-server/finish
@@ -1,4 +1,6 @@
 #!/bin/sh
 
+umount -l /proc/fs/nfsd
+umount -l /var/lib/nfs/rpc_pipefs
 /usr/sbin/rpc.nfsd -- 0
 /usr/sbin/exportfs -a -u
diff --git a/services/nfs-server/run b/services/nfs-server/run
index 2f18b2c..ae438d7 100755
--- a/services/nfs-server/run
+++ b/services/nfs-server/run
@@ -12,13 +12,16 @@ fi
 modprobe sunrpc || exit 1
 modprobe nfs || exit 1
 modprobe nfsd || exit 1
-
-mount -t rpc_pipefs rpc_pipefs /var/lib/nfs/rpc_pipefs defaults || exit 1
+if ! mountpoint -q /var/lib/nfs/rpc_pipefs; then
+	mount -t rpc_pipefs rpc_pipefs /var/lib/nfs/rpc_pipefs -o defaults || exit 1
+fi
 
 # Uncomment this and add the two daemons if you need kerberos support.
 # sv check idmapd gssd >/dev/null || exit 1
 
-mount -t nfsd nfsd /proc/fs/nfsd || exit 1
+if ! mountpoint -q /proc/fs/nfsd; then
+	mount -t nfsd nfsd /proc/fs/nfsd || exit 1
+fi
 exportfs -ra > /dev/null || exit 1
 rpc.nfsd -- $PROCESSES || exit 1