blob: 3d18afd6c094c2bd684c6552128f67b3473746e9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
#!/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/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$/) && ($2 != "/")) 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" ] &&
{
[ ! -f /var/lock/subsys/portmap ] && service portmap start
action "Mounting %s filesystems: " NFS mount -a -t nfs
}
[ -n "$SMBFSTAB" ] && action "Mounting %s filesystems: " SMB mount -a -t smbfs
[ -n "$NCPFSTAB" ] && action "Mounting %s filesystems: " NCP 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/ && $2 != "/" {print $2}' /proc/mounts`
while [ -n "$remaining" -a "$retry" -gt 0 ]
do
if [ "$retry" -lt 3 ]; then
action "Unmounting %s filesystems (retry): " NFS umount -f -a -t nfs
else
action "Unmounting %s filesystems: " NFS umount -f -a -t nfs
fi
sleep 2
remaining=`awk '!/^#/ && $3 ~ /^nfs/ && $2 != "/" {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 %s filesystems: " SMB umount -a -t smbfs
[ -n "$NCPMTAB" ] && action "Unmounting %s filesystems: " NCP umount -a -t ncpfs
rm -f /var/lock/subsys/netfs
;;
status)
if [ -f /proc/mounts ] ; then
[ -n "$NFSFSTAB" ] && {
gprintf "Configured %s mountpoints:\n" NFS
for fs in $NFSFSTAB; do echo $fs ; done
}
[ -n "$SMBFSTAB" ] && {
gprintf "Configured %s mountpoints:\n" SMB
for fs in $SMBFSTAB; do echo $fs ; done
}
[ -n "$NCPFSTAB" ] && {
gprintf "Configured %s mountpoints:\n" NCP
for fs in $NCPFSTAB; do echo $fs ; done
}
[ -n "$NFSMTAB" ] && {
gprintf "Active %s mountpoints:\n" NFS
for fs in $NFSMTAB; do echo $fs ; done
}
[ -n "$SMBMTAB" ] && {
gprintf "Active %s mountpoints:\n" SMB
for fs in $SMBMTAB; do echo $fs ; done
}
[ -n "$NCPMTAB" ] && {
gprintf "Active %s mountpoints:\n" NCP
for fs in $NCPMTAB; do echo $fs ; done
}
else
gprintf "/proc filesystem unavailable\n"
fi
;;
restart)
$0 stop
$0 start
;;
reload)
$0 start
;;
*)
gprintf "Usage: %s {start|stop|restart|reload|status}\n" netfs
exit 1
esac
exit 0
|