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 |