git: moved to github
[packages.git] / net / nfs-kernel-server / files / nfsd.init
index a5062c3..42b9a2a 100644 (file)
@@ -2,26 +2,37 @@
 # Copyright (C) 2006 OpenWrt.org
 
 START=60
+STOP=60
+
+USE_PROCD=1
+
 NFS_D=/var/lib/nfs
+LOCK_D=/var/lib/nfs/sm
 
-start() {
+start_service() {
+       grep -q /proc/fs/nfsd /proc/mounts || \
+               mount -t nfsd nfsd /proc/fs/nfsd
        mkdir -p $NFS_D
+       mkdir -p $LOCK_D
        touch $NFS_D/rmtab
-       
-       /usr/sbin/rpc.statd
+
+        sysctl -w fs.nfs.nlm_tcpport=32777 fs.nfs.nlm_udpport=32777 > /dev/null
+
+       procd_open_instance
+       procd_set_param command /usr/sbin/rpc.statd -p 32778 -o 32779 -F
+       procd_close_instance
+
        /usr/sbin/exportfs -r
        /usr/sbin/rpc.nfsd
-       /usr/sbin/rpc.mountd
-}
 
-stop() {
-       killall rpc.mountd 2> /dev/null
-       killall -9 rpc.nfsd 2> /dev/null
-       /usr/sbin/exportfs -au
-       killall rpc.statd 2> /dev/null
+       procd_open_instance
+       procd_set_param command /usr/sbin/rpc.mountd -p 32780 -F
+       procd_close_instance
 }
 
-reload() {
-       /usr/sbin/exportfs -r
+stop_service() {
+       rpc.nfsd 0 2> /dev/null
+       /usr/sbin/exportfs -au
+       grep -q /proc/fs/nfsd /proc/mounts && \
+               umount /proc/fs/nfsd
 }
-