Previous Page | Next Page

  1. Introduction
  2. Boot Process
  3. Init and System Initialization
  4. rc.sysinit script
  5. rc script
  6. functions script
  7. Services
  8. apm daemon
  9. network startup
  10. The network script file
  11. The network-functions file
  12. Portmap startup
  13. Random initialization
  14. Syslog initialization
  15. Gated
  16. Atd
  17. cron initialization
  18. pcmcia
  19. inetd daemon
  20. named daemon
  21. lpd daemon
  22. mars-nwe
  23. netfs startup
  24. dhcpd daemon
  25. autofs daemon
  26. keytable daemon
  27. sendmail daemon
  28. gpm daemon
  29. httpd daemon
  30. xfs startup
  31. smb startup
  32. innd startup
  33. linuxconf startup
  34. rc.local script
  35. Init, Getty, Login
  36. The shell
  37. Shutting down
  38. X
  39. Conclusions
  40. App A. rc.sysinit listing
  41. App B. functions listing
  42. App C. rc listing
  43. Credits

Linux netfs startup

The netfs startup script

#!/bin/bash
#
# netfs         Mount network filesystems.
#
# Authors:	Bill Nottingham <notting@redhat.com>
# 		Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
#
# chkconfig: 345 25 75
# description: Mounts and unmounts all Network File System (NFS), \
#	       SMB (Lan Manager/Windows), and NCP (NetWare) mount points.

# Source networking configuration.
if [ ! -f /etc/sysconfig/network ]; then
    exit 0
fi

# Source function library.
. /etc/rc.d/init.d/functions

. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

NFSFSTAB=`grep -v '^#' /etc/fstab | awk '{ if ($3 ~ /^nfs$/ && $4 !~ /noauto/) print $2}'`
SMBFSTAB=`grep -v '^#' /etc/fstab | awk '{ if ($3 ~ /^smbfs$/ && $4 !~ /noauto/) print $2}'`
NCPFSTAB=`grep -v '^#' /etc/fstab | awk '{ if ($3 ~ /^ncpfs$/ && $4 !~ /noauto/) print $2}'`
NFSMTAB=`grep -v '^#' /proc/mounts | awk '{ if ($3 ~ /^nfs$/ ) print $2}'`
SMBMTAB=`grep -v '^#' /proc/mounts | awk '{ if ($3 ~ /^smbfs$/ ) print $2}'`
NCPMTAB=`grep -v '^#' /proc/mounts | awk '{ if ($3 ~ /^ncpfs$/ ) print $2}'`

# See how we were called.
case "$1" in
  start)
        [ -n "$NFSFSTAB" ] && action "Mounting NFS filesystems" mount -a -t nfs
        [ -n "$SMBFSTAB" ] && action "Mounting SMB filesystems" mount -a -t smbfs
        [ -n "$NCPFSTAB" ] && action "Mounting NCP filesystems" mount -a -t ncpfs
	touch /var/lock/subsys/netfs
	action "Mounting other filesystems" mount -a -t nonfs,smbfs,ncpfs
	;;
  stop)
  	[ -n "$NFSMTAB" ] && {
		sig=
		retry=3
		remaining=`awk '!/^#/ && $3 ~ /^nfs/ {print $2}' /proc/mounts`
		while [ -n "$remaining" -a "$retry" -gt 0 ]
		do
			if [ "$retry" -lt 3 ]; then
				action "Unmounting NFS filesystems (retry)" umount -f -a -t nfs
			else
				action "Unmounting NFS filesystems" umount -f -a -t nfs
			fi
			sleep 2
			remaining=`awk '!/^#/ && $3 ~ /^nfs/ {print $2}' /proc/mounts`
			[ -z "$remaining" ] && break
			/sbin/fuser -k -m $sig $remaining >/dev/null
			sleep 5
			retry=$(($retry - 1))
			sig=-9
		done
	}
	[ -n "$SMBMTAB" ] && action "Unmounting SMB filesystems" umount -a -t smbfs
	[ -n "$NCPMTAB" ] && action "Unmounting NCP filesystems" umount -a -t ncpfs
	rm -f /var/lock/subsys/netfs
	;;
  status)
	if [ -f /proc/mounts ] ; then
	        [ -n "$NFSFSTAB" ] && {
		     echo "Configured NFS mountpoints:"
		     for fs in $NFSFSTAB; do echo $fs ; done
		}
	        [ -n "$SMBFSTAB" ] && {
		     echo "Configured SMB mountpoints:"
		     for fs in $SMBFSTAB; do echo $fs ; done
		}
	        [ -n "$NCPFSTAB" ] && {
		     echo "Configured NCP mountpoints:"
		     for fs in $NCPFSTAB; do echo $fs ; done
		}
		[ -n "$NFSMTAB" ] && {
                      echo "Active NFS mountpoints:"
		      for fs in $NFSMTAB; do echo $fs ; done
		}
		[ -n "$SMBMTAB" ] && {
                      echo "Active SMB mountpoints:"
		      for fs in $SMBMTAB; do echo $fs ; done
		}
		[ -n "$NCPMTAB" ] && {
                      echo "Active NCP mountpoints:"
		      for fs in $NCPMTAB; do echo $fs ; done
		}
	else
		echo "/proc filesystem unavailable"
	fi
	;;
  restart)
	$0 stop
	$0 start
	;;
  reload)
        $0 start
	;;
  *)
	echo "Usage: netfs {start|stop|restart|reload|status}"
	exit 1
esac

exit 0