| #!/bin/sh |
| # |
| # nfs This shell script takes care of starting and stopping |
| # the NFS services. Stolen from RedHat FC5. |
| |
| [ -x /usr/sbin/rpc.statd ] || exit 0 |
| [ -x /usr/sbin/rpc.nfsd ] || exit 0 |
| [ -x /usr/sbin/rpc.mountd ] || exit 0 |
| [ -x /usr/sbin/exportfs ] || exit 0 |
| |
| # Don't fail if /etc/exports doesn't exist; create a bare-bones version and continue. |
| [ -r /etc/exports ] || \ |
| { touch /etc/exports && chmod u+rw,g+r,o+r /etc/exports ; } || \ |
| { echo "/etc/exports does not exist" ; exit 0 ; } |
| |
| # The /var/lib/nfs directory is actually on a tmpfs filesystem. |
| mkdir -p /var/lib/nfs/sm |
| mkdir -p /var/lib/nfs/sm.bak |
| touch /var/lib/nfs/etab |
| touch /var/lib/nfs/rmtab |
| touch /var/lib/nfs/state |
| touch /var/lib/nfs/xtab |
| |
| start() { |
| # Start daemons. |
| echo -n "Starting NFS statd: " |
| rpc.statd |
| touch /var/lock/subsys/nfslock |
| echo "done" |
| |
| echo -n "Starting NFS services: " |
| /usr/sbin/exportfs -r |
| rpc.statd |
| echo "done" |
| |
| echo -n "Starting NFS daemon: " |
| rpc.nfsd 2 |
| echo "done" |
| |
| echo -n "Starting NFS mountd: " |
| rpc.mountd |
| echo "done" |
| touch /var/lock/subsys/nfs |
| } |
| |
| stop() { |
| # Stop daemons. |
| echo -n "Shutting down NFS mountd: " |
| killall -q rpc.mountd |
| echo "done" |
| |
| echo "Shutting down NFS daemon: " |
| kill -9 `pidof nfsd` 2>/dev/null |
| echo "done" |
| |
| echo -n "Shutting down NFS services: " |
| /usr/sbin/exportfs -au |
| rm -f /var/lock/subsys/nfs |
| killall -q rpc.statd |
| echo "done" |
| |
| echo -n "Stopping NFS statd: " |
| killall -q rpc.statd |
| echo "done" |
| rm -f /var/lock/subsys/nfslock |
| } |
| |
| # See how we were called. |
| case "$1" in |
| start) |
| start |
| ;; |
| stop) |
| stop |
| ;; |
| restart) |
| stop |
| start |
| ;; |
| reload) |
| /usr/sbin/exportfs -r |
| touch /var/lock/subsys/nfs |
| ;; |
| *) |
| echo "Usage: nfs {start|stop|reload}" |
| exit 1 |
| esac |
| |
| exit 0 |