mountcritremote revision 153871
1#!/bin/sh 2# 3# $NetBSD: mountcritremote,v 1.7 2002/04/29 12:29:53 lukem Exp $ 4# $FreeBSD: head/etc/rc.d/mountcritremote 153871 2005-12-30 09:16:23Z rse $ 5# 6 7# PROVIDE: mountcritremote 8# REQUIRE: NETWORKING root mountcritlocal cleanvar ipsec 9# KEYWORD: nojail 10 11. /etc/rc.subr 12 13name="mountcritremote" 14stop_cmd=":" 15start_cmd="mountcritremote_start" 16start_precmd="mountcritremote_precmd" 17 18# Mount NFS filesystems if present in /etc/fstab 19# 20# XXX When the vfsload() issues with nfsclient support and related sysctls 21# have been resolved, this block can be removed, and the condition that 22# skips nfs in the following block (for "other network filesystems") can 23# be removed. 24# 25mountcritremote_precmd() 26{ 27 case "`mount -d -a -t nfs 2> /dev/null`" in 28 *mount_nfs*) 29 # Handle absent nfs client support 30 if ! sysctl vfs.nfs >/dev/null 2>&1; then 31 kldload nfsclient || { warn 'nfs mount ' \ 32 'requested, but no nfs client in kernel'; \ 33 return 1; } 34 fi 35 ;; 36 esac 37 return 0 38} 39 40mountcritremote_start() 41{ 42 # Mount nfs filesystems. 43 # 44 echo -n 'Mounting NFS file systems:' 45 mount -a -t nfs 46 echo '.' 47 48 # Mount other network filesystems if present in /etc/fstab. 49 case ${extra_netfs_types} in 50 [Nn][Oo]) 51 ;; 52 *) 53 netfs_types="${netfs_types} ${extra_netfs_types}" 54 ;; 55 esac 56 57 for i in ${netfs_types}; do 58 fstype=${i%:*} 59 fsdecr=${i#*:} 60 61 [ "${fstype}" = "nfs" ] && continue 62 63 case "`mount -d -a -t ${fstype}`" in 64 *mount_${fstype}*) 65 echo -n "Mounting ${fsdecr} file systems:" 66 mount -a -t ${fstype} 67 echo '.' 68 ;; 69 esac 70 done 71 72 # Cleanup /var again just in case it's a network mount. 73 /etc/rc.d/cleanvar reload 74 rm -f /var/run/clean_var /var/spool/lock/clean_var 75} 76 77load_rc_config $name 78run_rc_command "$1" 79