log_script_name "$0 $*"
+# Load global network parameters
+source /etc/sysconfig/network/network-parameters
+
+# Make sure networking is up. If not, this bootscript will wait forever
+if [ ! -f "${NETWORKING_UP_FILE}" ]; then
+ msg_log "${0}: Network is down"
+ exit ${EXIT_CODE_WARNING}
+fi
+
+mountnetfs_start() {
+ if ! grep -q "_netdev" /etc/fstab; then
+ msg_log "No network filesystem found in fstab"
+ exit ${EXIT_CODE_SUCCESS}
+ fi
+
+ if grep -q "nfs" /etc/fstab; then
+ # rpc.statd is required to mount nfs shares
+ if [ ! -x /sbin/rpc.statd ]; then
+ msg_log "Missing rpc.statd executable"
+ exit ${EXIT_CODE_WARNING}
+ fi
+
+ if ! statusproc rpc.statd | grep -q "running"; then
+ cmd_run_log_box "Starting rpc.statd" loadproc rpc.statd
+ fi
+ fi
+
+ # Walk through /etc/fstab and mount all file systems that have the
+ #_netdev option set in the fs_mntops field (the 4th field. See man
+ # fstab for more info).
+ cmd_run_log_box "Mounting network file systems" mount -a -O _netdev
+}
+
mountnetfs_stop() {
# The following line obtains a list from the output of
# mount for all netfs types and anything that was
# mounted with the _netdev option.
NETMOUNTS=`/bin/mount \
| /bin/grep '_netdev\|smbfs\|ncpfs|\coda\|nfs' \
- | /usr/bin/cut -d " " -f 3 | /bin/sed 's/$/ /g'`
+ | /usr/bin/cut -d " " -f 3 | /bin/sed ':a;$!N;s/\n/ /;ta'`
# Check to see if anything was listed from above
# (see if anything is actually needs to be unmounted)
# There is something mounted
# Try and stop processes the nice way
# (probably won't work in most cases)
- /bin/fuser -TERM -m $NETMOUNTS > /dev/null
-
+ /bin/fuser -SIGTERM -km $NETMOUNTS > /dev/null
+
# Check and see if it found anything. If it
# did, then give 3 seconds for things to exit
# the nice way before killing them off.
fi
}
-
case "$1" in
start)
- # Walk through /etc/fstab and mount all file systems that have the
- # _netdev option set in the fs_mntops field (the 4th field. See man
- # fstab for more info).
- cmd_run_log_box "Mounting network file systems" mount -a -O _netdev
+ mountnetfs_start
;;
stop)
cmd_run_log_box "Unmounting network file systems" mountnetfs_stop
+ if statusproc rpc.statd | grep -q "running"; then
+ cmd_run_log_box "Stopping rpc.statd" killproc rpc.statd
+ fi
;;
*)