in keeping the scripts under rc.d in sync with us. So, begin removal of NetBSD specific stuff (which made our scripts more complicated than necessary), starting with the NetBSD KEYWORD.
98 lines
1.9 KiB
Bash
Executable File
98 lines
1.9 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# $NetBSD: mountcritremote,v 1.7 2002/04/29 12:29:53 lukem Exp $
|
|
# $FreeBSD$
|
|
#
|
|
|
|
# PROVIDE: mountcritremote
|
|
# REQUIRE: NETWORKING root mountcritlocal
|
|
# KEYWORD: FreeBSD
|
|
|
|
. /etc/rc.subr
|
|
|
|
name="mountcritremote"
|
|
stop_cmd=":"
|
|
|
|
case ${OSTYPE} in
|
|
FreeBSD)
|
|
start_cmd="mountcritremote_start"
|
|
start_precmd="mountcritremote_precmd"
|
|
;;
|
|
NetBSD)
|
|
start_cmd="mountcritremote_start"
|
|
;;
|
|
esac
|
|
|
|
# Mount NFS filesystems if present in /etc/fstab
|
|
#
|
|
# XXX When the vfsload() issues with nfsclient support and related sysctls
|
|
# have been resolved, this block can be removed, and the condition that
|
|
# skips nfs in the following block (for "other network filesystems") can
|
|
# be removed.
|
|
#
|
|
mountcritremote_precmd()
|
|
{
|
|
case "`mount -d -a -t nfs 2> /dev/null`" in
|
|
*mount_nfs*)
|
|
# Handle absent nfs client support
|
|
if ! sysctl vfs.nfs >/dev/null 2>&1; then
|
|
kldload nfsclient || warn 'nfs mount ' \
|
|
'requested, but no nfs client in kernel' \
|
|
return 1
|
|
fi
|
|
;;
|
|
esac
|
|
return 0
|
|
}
|
|
|
|
mountcritremote_start()
|
|
{
|
|
case ${OSTYPE} in
|
|
FreeBSD)
|
|
# Mount nfs filesystems.
|
|
#
|
|
echo -n 'Mounting NFS file systems:'
|
|
mount -a -t nfs
|
|
echo '.'
|
|
|
|
# Mount other network filesystems if present in /etc/fstab.
|
|
case ${extra_netfs_types} in
|
|
[Nn][Oo])
|
|
;;
|
|
*)
|
|
netfs_types="${netfs_types} ${extra_netfs_types}"
|
|
;;
|
|
esac
|
|
|
|
for i in ${netfs_types}; do
|
|
fstype=${i%:*}
|
|
fsdecr=${i#*:}
|
|
|
|
[ "${fstype}" = "nfs" ] && continue
|
|
|
|
case "`mount -d -a -t ${fstype}`" in
|
|
*mount_${fstype}*)
|
|
echo -n "Mounting ${fsdecr} file systems:"
|
|
mount -a -t ${fstype}
|
|
echo '.'
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# Cleanup /var again just in case it's a network mount.
|
|
/etc/rc.d/cleanvar reload
|
|
rm -f /var/run/clean_var /var/spool/lock/clean_var
|
|
;;
|
|
NetBSD)
|
|
# Mount critical filesystems that may be `remote'.
|
|
# (as specified in $critical_filesystems_remote)
|
|
# This usually includes /usr.
|
|
#
|
|
mount_critical_filesystems remote
|
|
;;
|
|
esac
|
|
}
|
|
|
|
load_rc_config $name
|
|
run_rc_command "$1"
|