Author: arekm Date: Fri Dec 3 10:38:23 2010 New Revision: 11927 Added: rc-scripts/trunk/rc.d/init.d/netfs (contents, props changed) Log: Networked filesystems mount/umount. Unfinished.
Added: rc-scripts/trunk/rc.d/init.d/netfs ============================================================================== --- (empty file) +++ rc-scripts/trunk/rc.d/init.d/netfs Fri Dec 3 10:38:23 2010 @@ -0,0 +1,159 @@ +#!/bin/sh +# +# netfs Mount network filesystems. +# +# Authors: Bill Nottingham <[email protected]> +# AJ Lewis <[email protected]> +# Miquel van Smoorenburg, <[email protected]> +# +# chkconfig: 345 25 75 +# description: Mounts and unmounts all Network File System (NFS), \ +# CIFS (Lan Manager/Windows), and NCP (NetWare) mount points. + +[ -f /etc/sysconfig/network ] || exit 0 +. /etc/init.d/functions +. /etc/sysconfig/network + +NFSFSTAB=$(LC_ALL=C awk '!/^#/ && $3 ~ /^nfs/ && $3 != "nfsd" && $4 !~ /noauto/ { print $2 }' /etc/fstab) +CIFSFSTAB=$(LC_ALL=C awk '!/^#/ && $3 == "cifs" && $4 !~ /noauto/ { print $2 }' /etc/fstab) +NCPFSTAB=$(LC_ALL=C awk '!/^#/ && $3 == "ncpfs" && $4 !~ /noauto/ { print $2 }' /etc/fstab) +NETDEVFSTAB=$(LC_ALL=C awk '!/^#/ && $4 ~/_netdev/ && $4 !~ /noauto/ { print $1 }' /etc/fstab) + +NFSMTAB=$(LC_ALL=C awk '$3 ~ /^nfs/ && $3 != "nfsd" && $2 != "/" { print $2 }' /proc/mounts) +CIFSMTAB=$(LC_ALL=C awk '$3 == "cifs" { print $2 }' /proc/mounts) +NCPMTAB=$(LC_ALL=C awk '$3 == "ncpfs" { print $2 }' /proc/mounts) +NETDEVMTAB=$(LC_ALL=C awk '$4 ~ /_netdev/ && $2 != "/" { print $2 }' /etc/mtab) + +# See how we were called. +case "$1" in + start) + [ ! -f /var/lock/subsys/network ] && exit 0 + [ "$EUID" != "0" ] && exit 4 + [ -n "$NFSFSTAB" ] && + { + [ ! -f /var/lock/subsys/rpcbind ] && service rpcbind start + run_cmd "Mounting NFS filesystems: " mount -a -t nfs,nfs4 + } + [ -n "$CIFSFSTAB" ] && run_cmd "Mounting CIFS filesystems: " mount -a -t cifs + [ -n "$NCPFSTAB" ] && run_cmd "Mounting NCP filesystems: " mount -a -t ncpfs + [ -n "$NETDEVFSTAB" ] && + { + if [ -f /etc/mdadm.conf ]; then + mdadm -A -s + fi + if [ -f /etc/multipath.conf ] && [ -x /sbin/multipath ]; then + modprobe dm-multipath >/dev/null 2>&1 + /sbin/multipath -v 0 + if [ -x /sbin/kpartx ]; then + /sbin/dmsetup ls --target multipath --exec "/sbin/kpartx -a -p p" + fi + fi + if [ -x /sbin/lvm ]; then + if /sbin/lvm vgscan > /dev/null 2>&1 ; then + run_cmd "Setting up Logical Volume Management:" /sbin/lvm vgchange -a y + fi + fi + + if [ -f /etc/crypttab ]; then + init_crypto 1 + fi + + show "Checking network-attached filesystems"; started + initlog -c "fsck -A -T -R -a -t opts=_netdev" + rc=$? + + if [ "$rc" -gt 1 ]; then + echo + echo + nls "*** An error occurred during the file system check." + nls "*** Dropping you to a shell; the system will reboot" + nls "*** when you leave the shell." + + PS1="$(nls '(Repair filesystem)# ')"; export PS1 + [ "$SELINUX" = "1" ] && disable_selinux + if ! is_no "$RUN_SULOGIN_ON_ERR"; then + /sbin/sulogin + else + /bin/sh + fi + shutdown -r now + fi + } + touch /var/lock/subsys/netfs + run_cmd "Mounting other filesystems: " mount -a -t nonfs,nfs4,cifs,ncpfs,gfs + ;; + stop) + # Unmount loopback stuff first + [ "$EUID" != "0" ] && exit 4 + __umount_loopback_loop + if [ -n "$NETDEVMTAB" ]; then + __umount_loop '$4 ~ /_netdev/ && $2 != "/" {print $2}' \ + /etc/mtab \ + $(nls "Unmounting network block filesystems: ") \ + $(nls "Unmounting network block filesystems (retry): ") + fi + if [ -n "$NFSMTAB" ]; then + __umount_loop '$3 ~ /^nfs/ && $3 != "nfsd" && $2 != "/" {print $2}' \ + /proc/mounts \ + $(nls "Unmounting NFS filesystems: ") \ + $(nls "Unmounting NFS filesystems (retry): ") \ + "-f -l" + fi + [ -n "$CIFSMTAB" ] && run_cmd "Unmounting CIFS filesystems: " umount -a -t cifs + [ -n "$NCPMTAB" ] && run_cmd "Unmounting NCP filesystems: " umount -a -t ncp,ncpfs + rm -f /var/lock/subsys/netfs + ;; + status) + if [ -f /proc/mounts ] ; then + [ -n "$NFSFSTAB" ] && { + nls "Configured NFS mountpoints: " + for fs in $NFSFSTAB; do echo $fs ; done + } + [ -n "$CIFSFSTAB" ] && { + nls "Configured CIFS mountpoints: " + for fs in $CIFSFSTAB; do echo $fs ; done + } + [ -n "$NCPFSTAB" ] && { + nls "Configured NCP mountpoints: " + for fs in $NCPFSTAB; do echo $fs ; done + } + [ -n "$NETDEVFSTAB" ] && { + nls "Configured network block devices: " + for fs in $NETDEVFSTAB; do echo $fs ; done + } + [ -n "$NFSMTAB" ] && { + nls "Active NFS mountpoints: " + for fs in $NFSMTAB; do echo $fs ; done + } + [ -n "$CIFSMTAB" ] && { + nls "Active CIFS mountpoints: " + for fs in $CIFSMTAB; do echo $fs ; done + } + [ -n "$NCPMTAB" ] && { + nls "Active NCP mountpoints: " + for fs in $NCPMTAB; do echo $fs ; done + } + [ -n "$NETDEVMTAB" ] && { + nls "Active network block devices: " + for fs in $NETDEVMTAB; do echo $fs ; done + } + else + nls "/proc filesystem unavailable" + fi + [ -r /var/lock/subsys/netfs ] || exit 3 + ;; + restart) + $0 stop + $0 start + exit $? + ;; + reload) + $0 start + exit $? + ;; + *) + echo $"Usage: $0 {start|stop|restart|reload|status}" + exit 2 +esac + +exit 0 _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
