#!/bin/sh # NFSSERVER_ON=1 MOUNTD_PORT_ON=1 MOUNTD_PORT=2049 DESC="NFS kernel daemon" RPCNFSDCOUNT=16 PIDFILE=/var/run/nsfd.pid if [ -d /usr/sbin ] ; then PORTMAP_BIN=/usr/sbin/portmap NFSD_BIN=/usr/sbin/nfsd MOUNTD_BIN=/usr/sbin/mountd EXPORTFS_BIN=/usr/sbin/exportfs else PORTMAP_BIN=/sbin/portmap NFSD_BIN=/sbin/nfsd MOUNTD_BIN=/sbin/mountd EXPORTFS_BIN=/sbin/exportfs fi [ -x $NFSD_BIN ] || exit 0 [ -x $MOUNTD_BIN ] || exit 0 [ -x $EXPORTFS_BIN ] || exit 0 [ -x $PORTMAP_BIN ] || exit 0 set -e if [ $NFSSERVER_ON -ne 0 ]; then if [ ! -d /var/lib ] ; then mkdir /var/lib; fi rm -R /var/lib/nfs 2> /dev/null || /bin/true ln -sf /tmp /var/lib/nfs touch /var/lib/nfs/rmtab fi # See how we were called. case "$1" in start) if [ $NFSSERVER_ON -ne 0 ]; then ##############_Module_############ modprobe exportfs modprobe nfsd #############_PORTMAP_############ echo -n "Starting portmap daemon:" echo -n " portmap" start-stop-daemon --start --quiet --exec $PORTMAP_BIN echo "." if [ -f /var/run/portmap.upgrade-state ]; then echo -n "Restoring old RPC service information..." sleep 1 # needs a short pause or pmap_set won't work. :( pmap_set /dev/null 2>&1 if [ $MOUNTD_PORT_ON -ne 0 ]; then start-stop-daemon --start --quiet --exec $MOUNTD_BIN -- -p $MOUNTD_PORT else start-stop-daemon --start --quiet --exec $MOUNTD_BIN fi echo "." pidof nsfd > $PIDFILE ############_NFSSERVER_########### fi ;; stop) #############_PORTMAP_############ echo -n "Stopping portmap daemon:" echo -n " portmap" start-stop-daemon --stop --quiet --exec $PORTMAP_BIN echo "." #############_PORTMAP_############ sleep 1 ############_NFSSERVER_########### echo "Stopping $DESC: mountd" start-stop-daemon --stop --quiet --name mountd --user 0 sleep 1 echo " nfsd" start-stop-daemon --stop --quiet --name nfsd --user 0 --signal 2 rm -rf $PIDFILE echo "." echo "Unexporting directories for $DESC..." $EXPORTFS_BIN -au if grep -qs /proc/fs/nfsd /proc/mounts ; then umount /proc/fs/nfsd fi rm -rf /tmp/etab rm -rf /tmp/rmtab rm -rf /tmp/xtab rm -rf /var/lib/nfs echo "done." ############_NFSSERVER_########### ;; reload | force-reload) ############_NFSSERVER_########### echo "Re-exporting directories for $DESC..." $EXPORTFS_BIN -r echo "done." ############_NFSSERVER_########### ;; restart) echo "restarting $DESC: $NAME... " $0 stop sleep 1 $0 start echo "done." ;; *) echo "Usage: nfs-kernel-server & portmap {start|stop|reload|force-reload|restart}" exit 1 ;; esac exit 0