freebsd-dev/etc/rc.d/mountcritlocal
Mike Makonnen f2e7477d21 The check for errors from the mount command did not work as intended
because another command (echo) is executed between the mount command
and the check.

Reported by: Sergey Baturov <sergey@toor.org.ru>
MFC after: 2 weeks
2008-03-06 14:39:33 +00:00

55 lines
914 B
Bash
Executable File

#!/bin/sh
#
# $FreeBSD$
#
# PROVIDE: mountcritlocal
# REQUIRE: root
# KEYWORD: nojail
. /etc/rc.subr
name="mountcritlocal"
start_cmd="mountcritlocal_start"
stop_cmd=":"
mountcritlocal_start()
{
local err
# Set up the list of network filesystem types for which mounting
# should be delayed until after network initialization.
case ${extra_netfs_types} in
[Nn][Oo])
;;
*)
netfs_types="${netfs_types} ${extra_netfs_types}"
;;
esac
# Mount everything except nfs filesystems.
echo -n 'Mounting local file systems:'
mount_excludes='no'
for i in ${netfs_types}; do
fstype=${i%:*}
mount_excludes="${mount_excludes}${fstype},"
done
mount_excludes=${mount_excludes%,}
mount -a -t ${mount_excludes}
err=$?
echo '.'
case ${err} in
0)
;;
*)
echo 'Mounting /etc/fstab filesystems failed,' \
' startup aborted'
stop_boot true
;;
esac
}
load_rc_config $name
run_rc_command "$1"