#!/bin/sh # # nfsfs Mount NFS filesystems. # # Version: @(#) /etc/init.d/skeleton 1.01 26-Oct-1993 # # Author: Miquel van Smoorenburg, # # chkconfig: 345 15 88 # description: Mounts and unmounts all Network File System (NFS) \ # mount points. # # $Id$ # Source networking configuration. if [ ! -f /etc/sysconfig/network ]; then exit 0 fi # Source function library. . /etc/rc.d/init.d/functions # Get network config . /etc/sysconfig/network # Get service config [ -f /etc/sysconfig/nfsclient ] && . /etc/sysconfig/nfsclient # Check that networking is up. if is_yes "${NETWORKING}"; then if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then msg_network_down nfsfs exit 1 fi else exit 0 fi # See how we were called. case "$1" in start) if [ ! -f /var/lock/subsys/nfsfs ]; then if is_yes "$NFS4" ; then if grep -q nfs4 /proc/filesystems; then modprobe -s nfs > /dev/null 2>&1 if [ "$(kernelverser)" -ge "002006" ]; then grep -q rpc_pipefs /proc/filesystems && \ ! grep -q rpc_pipefs /proc/mounts && \ run_cmd "Mounting /var/lib/nfs/rpc_pipefs filesystem" mount -t rpc_pipefs rpc_pipefs /var/lib/nfs/rpc_pipefs fi if [ ! -f /var/lock/subsys/idmapd ]; then msg_starting "NFS idmapd" daemon rpc.idmapd $RPCIDMAPOPTIONS fi msg_starting "NFS gssd" daemon rpc.gssd -m $RPCGSSOPTIONS fi fi run_cmd "Mounting NFS filesystems" mount -a -t nfs touch /var/lock/subsys/nfsfs else msg_already_running "NFSFS" fi ;; stop) if [ -f /proc/mounts ]; then fsfile="/proc/mounts" else fsfile="/etc/mtab" fi show "Unmounting NFS filesystems" busy retry=3 remaining=$(awk '$3 == "nfs" {print $2}' $fsfile) while [ -n "$remaining" -a $retry -gt 0 ]; do fuser -msk -TERM `awk '$3 == "nfs" {print $2}' < $fsfile` sleep 2 fuser -msk -KILL `awk '$3 == "nfs" {print $2}' < $fsfile` umount -a -f -t nfs remaining=$(awk '$3 == "nfs" {print $2}' $fsfile) retry=$(($retry-1)) done ok if is_yes "$NFS4" ; then if grep -q nfs4 /proc/filesystems; then msg_stopping "NFS gssd" killproc rpc.gssd if [ -f /var/lock/subsys/idmapd -a ! -f /var/lock/subsys/nfs ]; then msg_stopping "NFS idmapd" killproc rpc.idmapd rm -f /var/lock/subsys/idmapd fi fi fi rm -f /var/lock/subsys/nfsfs ;; status) if [ -f /proc/mounts ]; then echo "Configured NFS mountpoints:" grep -v '^#' /etc/fstab | \ awk '{ if ($3 ~ /^nfs$/ && $4 !~ /noauto/) print $2}' echo "Active NFS mountpoints:" grep -v '^#' /proc/mounts | \ awk '{ if ($3 ~ /^nfs$/ && $4 !~ /noauto/) print $2}' else echo "/proc filesystem unavailable" fi ;; restart) $0 stop $0 start ;; reload|force-reload) mount -a -t nfs ;; *) msg_usage "$0 {start|stop|restart|reload|force-reload|status}" exit 3 esac exit 0