wok annotate nfs-utils/stuff/etc/init.d/nfsd @ rev 25551

nfs-utils: make nfsd work on first start too
author Hans-G?nter Theisgen
date Thu Apr 06 10:52:37 2023 +0100 (14 months ago)
parents 2994fe300985
children
rev   line source
pascal@7285 1 #!/bin/sh
al@19161 2 # /etc/init.d/nfsd: Start, stop and restart NFS daemon on SliTaz, at boot
pascal@7285 3 # time or with the command line.
pascal@7285 4 #
pascal@7285 5 # To start daemon at boot time, just put the right name in the $RUN_DAEMONS
pascal@7285 6 # variable of /etc/rcS.conf.
pascal@7285 7 #
Hans-G?nter@25533 8
pascal@7285 9 . /etc/init.d/rc.functions
pascal@7285 10
pascal@7285 11 NAME=NFSd
al@19159 12 DESC="$(_ '%s daemon' NFS)"
pascal@7285 13 DAEMON=/usr/sbin/rpc.nfsd
pascal@7285 14 PID_FILE=/var/run/nfsd.pid
Hans-G?nter@25533 15 OPTIONS="8" # start 8 threads, default is 1 if omitted
Hans-G?nter@25533 16 . /etc/daemons.conf
Hans-G?nter@25533 17 [ -z "$NFSD_OPTIONS" ] || OPTIONS="$NFSD_OPTIONS"
pascal@7285 18
pascal@7285 19 case "$1" in
Hans-G?nter@25533 20 (start)
Hans-G?nter@25533 21 if active_pidfile $PID_FILE nfsd
Hans-G?nter@25533 22 then
Hans-G?nter@25533 23 _ '%s is already running.' $NAME
Hans-G?nter@25533 24 exit 1
Hans-G?nter@25533 25 fi
Hans-G?nter@25533 26 action 'Starting %s: %s...' "$DESC" $NAME
Hans-G?nter@25551 27 # Make sure module nfsd is loaded:
Hans-G?nter@25551 28 modprobe nfsd
Hans-G?nter@25551 29 # Mount nfsd when not already mounted:
Hans-G?nter@25551 30 mount|grep -q /proc/fs/nfsd ||
Hans-G?nter@25551 31 mount -t nfsd nfsd /proc/fs/nfsd
Hans-G?nter@25533 32 # Start rpcbind when not already running:
Hans-G?nter@25533 33 [ -n "$(pidof rpcbind)" ] || rpcbind
Hans-G?nter@25533 34 # Export directories specified in /etc/exports:
Hans-G?nter@25533 35 /usr/sbin/exportfs -r
Hans-G?nter@25533 36 # Start nfsd:
Hans-G?nter@25533 37 $DAEMON $OPTIONS
Hans-G?nter@25533 38 p=$(pidof nfsd)
Hans-G?nter@25533 39 echo "${p%% *}" > $PID_FILE
Hans-G?nter@25533 40 # Start RPC mount daemon:
Hans-G?nter@25533 41 /usr/sbin/rpc.mountd
Hans-G?nter@25533 42 status
Hans-G?nter@25533 43 ;;
Hans-G?nter@25533 44 (stop)
Hans-G?nter@25533 45 if ! active_pidfile $PID_FILE nfsd
Hans-G?nter@25533 46 then
Hans-G?nter@25533 47 _ '%s is not running.' $NAME
Hans-G?nter@25533 48 exit 1
Hans-G?nter@25533 49 fi
Hans-G?nter@25533 50 action 'Stopping %s: %s...' "$DESC" $NAME
Hans-G?nter@25533 51 # Stop RPC mount daemon:
Hans-G?nter@25533 52 killall -q -KILL rpc.mountd
Hans-G?nter@25533 53 # Stop all threads of nfsd:
Hans-G?nter@25533 54 p=$(pidof nfsd)
Hans-G?nter@25533 55 # remove first pid, supposing it is own pid:
Hans-G?nter@25533 56 p=${p#* }
Hans-G?nter@25533 57 kill -KILL $p
Hans-G?nter@25533 58 # Unexport all exported directories:
Hans-G?nter@25533 59 /usr/sbin/exportfs -au
Hans-G?nter@25533 60 # flush kernel's export table:
Hans-G?nter@25533 61 /usr/sbin/exportfs -f
Hans-G?nter@25533 62 status
Hans-G?nter@25533 63 ;;
Hans-G?nter@25533 64 (restart)
Hans-G?nter@25533 65 if ! active_pidfile $PID_FILE nfsd
Hans-G?nter@25533 66 then
Hans-G?nter@25533 67 _ '%s is not running.' $NAME
Hans-G?nter@25533 68 exit 1
Hans-G?nter@25533 69 fi
Hans-G?nter@25533 70 action 'Restarting %s: %s...' "$DESC" $NAME
Hans-G?nter@25533 71 # Stop RPC mount daemon:
Hans-G?nter@25533 72 killall -q -KILL rpc.mountd
Hans-G?nter@25533 73 # Stop all instances of nfsd:
Hans-G?nter@25533 74 p=$(pidof nfsd)
Hans-G?nter@25533 75 # remove first pid, supposing it is own pid:
Hans-G?nter@25533 76 p=${p#* }
Hans-G?nter@25533 77 kill -KILL $p
Hans-G?nter@25533 78 # Unexport all exported directories:
Hans-G?nter@25533 79 /usr/sbin/exportfs -au
Hans-G?nter@25533 80 # flush kernel's export table:
Hans-G?nter@25533 81 /usr/sbin/exportfs -f
Hans-G?nter@25533 82 # Wait before starting:
Hans-G?nter@25533 83 sleep 2
Hans-G?nter@25533 84 # Export directories specified in /etc/exports:
Hans-G?nter@25533 85 /usr/sbin/exportfs -r
Hans-G?nter@25533 86 # Start nfsd:
Hans-G?nter@25533 87 $DAEMON $OPTIONS
Hans-G?nter@25533 88 p=$(pidof nfsd)
Hans-G?nter@25533 89 echo "${p%% *}" > $PID_FILE
Hans-G?nter@25533 90 # Start RPC mount daemon:
Hans-G?nter@25533 91 /usr/sbin/rpc.mountd
Hans-G?nter@25533 92 status
Hans-G?nter@25533 93 ;;
Hans-G?nter@25533 94 (*)
Hans-G?nter@25533 95 emsg "<n><b>$(_ 'Usage:')</b> $0 [start|stop|restart]"
Hans-G?nter@25533 96 newline
Hans-G?nter@25533 97 exit 1
Hans-G?nter@25533 98 ;;
pascal@7285 99 esac
pascal@7285 100
pascal@7285 101 exit 0