wok-6.x annotate nfs-utils/stuff/etc/init.d/nfsd @ rev 25533

nfs-utils: made stop and restart working in /etc/init.d/nfsd
author Hans-G?nter Theisgen
date Tue Feb 28 14:41:52 2023 +0100 (16 months ago)
parents ff5fd8788cd9
children 23441bc814ae
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@25533 27 # Start rpcbind when not already running:
Hans-G?nter@25533 28 [ -n "$(pidof rpcbind)" ] || rpcbind
Hans-G?nter@25533 29 # Export directories specified in /etc/exports:
Hans-G?nter@25533 30 /usr/sbin/exportfs -r
Hans-G?nter@25533 31 # Start nfsd:
Hans-G?nter@25533 32 $DAEMON $OPTIONS
Hans-G?nter@25533 33 p=$(pidof nfsd)
Hans-G?nter@25533 34 echo "${p%% *}" > $PID_FILE
Hans-G?nter@25533 35 # Start RPC mount daemon:
Hans-G?nter@25533 36 /usr/sbin/rpc.mountd
Hans-G?nter@25533 37 status
Hans-G?nter@25533 38 ;;
Hans-G?nter@25533 39 (stop)
Hans-G?nter@25533 40 if ! active_pidfile $PID_FILE nfsd
Hans-G?nter@25533 41 then
Hans-G?nter@25533 42 _ '%s is not running.' $NAME
Hans-G?nter@25533 43 exit 1
Hans-G?nter@25533 44 fi
Hans-G?nter@25533 45 action 'Stopping %s: %s...' "$DESC" $NAME
Hans-G?nter@25533 46 # Stop RPC mount daemon:
Hans-G?nter@25533 47 killall -q -KILL rpc.mountd
Hans-G?nter@25533 48 # Stop all threads of nfsd:
Hans-G?nter@25533 49 p=$(pidof nfsd)
Hans-G?nter@25533 50 # remove first pid, supposing it is own pid:
Hans-G?nter@25533 51 p=${p#* }
Hans-G?nter@25533 52 kill -KILL $p
Hans-G?nter@25533 53 # Unexport all exported directories:
Hans-G?nter@25533 54 /usr/sbin/exportfs -au
Hans-G?nter@25533 55 # flush kernel's export table:
Hans-G?nter@25533 56 /usr/sbin/exportfs -f
Hans-G?nter@25533 57 status
Hans-G?nter@25533 58 ;;
Hans-G?nter@25533 59 (restart)
Hans-G?nter@25533 60 if ! active_pidfile $PID_FILE nfsd
Hans-G?nter@25533 61 then
Hans-G?nter@25533 62 _ '%s is not running.' $NAME
Hans-G?nter@25533 63 exit 1
Hans-G?nter@25533 64 fi
Hans-G?nter@25533 65 action 'Restarting %s: %s...' "$DESC" $NAME
Hans-G?nter@25533 66 # Stop RPC mount daemon:
Hans-G?nter@25533 67 killall -q -KILL rpc.mountd
Hans-G?nter@25533 68 # Stop all instances of nfsd:
Hans-G?nter@25533 69 p=$(pidof nfsd)
Hans-G?nter@25533 70 # remove first pid, supposing it is own pid:
Hans-G?nter@25533 71 p=${p#* }
Hans-G?nter@25533 72 kill -KILL $p
Hans-G?nter@25533 73 # Unexport all exported directories:
Hans-G?nter@25533 74 /usr/sbin/exportfs -au
Hans-G?nter@25533 75 # flush kernel's export table:
Hans-G?nter@25533 76 /usr/sbin/exportfs -f
Hans-G?nter@25533 77 # Wait before starting:
Hans-G?nter@25533 78 sleep 2
Hans-G?nter@25533 79 # Export directories specified in /etc/exports:
Hans-G?nter@25533 80 /usr/sbin/exportfs -r
Hans-G?nter@25533 81 # Start nfsd:
Hans-G?nter@25533 82 $DAEMON $OPTIONS
Hans-G?nter@25533 83 p=$(pidof nfsd)
Hans-G?nter@25533 84 echo "${p%% *}" > $PID_FILE
Hans-G?nter@25533 85 # Start RPC mount daemon:
Hans-G?nter@25533 86 /usr/sbin/rpc.mountd
Hans-G?nter@25533 87 status
Hans-G?nter@25533 88 ;;
Hans-G?nter@25533 89 (*)
Hans-G?nter@25533 90 emsg "<n><b>$(_ 'Usage:')</b> $0 [start|stop|restart]"
Hans-G?nter@25533 91 newline
Hans-G?nter@25533 92 exit 1
Hans-G?nter@25533 93 ;;
pascal@7285 94 esac
pascal@7285 95
pascal@7285 96 exit 0