1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-22 11:17:19 +00:00
freebsd/etc/rc.d/mountd
Doug Barton 20ceedfb69 Fix various issues with the NFS and RPC related scripts:
1. Add new functionality to the force_depend method to incorporate the
   tests for whether the service is enabled and/or already running.
2. Add a new option to bypass checking only that the service is enabled
   at boot time, and always check if it is running.
3. Use this new functionality to greatly simplify the rc.d scripts that
   use force_depend.
4. Add a force_depend for statd in lockd
5. Remove the check that either nfs_server or nfs_client is _enable'd
   from statd and lockd. This was always overkill, and prevented using
   the {one|force}start options, as well as stop'ing on the command line.
6. The yp* scripts had some of their arguments in various weird orders.
   Bring them into line with the model.
7. If mountd fails to create /var/db/mountdtab, err out.

Ideas, suggestions, and/or review from delphij and jilles.
Pointy hats are completely my responsibility however.
2012-02-14 10:51:24 +00:00

53 lines
1.0 KiB
Bash
Executable File

#!/bin/sh
#
# $FreeBSD$
#
# PROVIDE: mountd
# REQUIRE: NETWORKING rpcbind quota
# KEYWORD: nojail shutdown
. /etc/rc.subr
name="mountd"
rcvar="mountd_enable"
command="/usr/sbin/${name}"
pidfile="/var/run/${name}.pid"
required_files="/etc/exports"
start_precmd="mountd_precmd"
extra_commands="reload"
mountd_precmd()
{
force_depend rpcbind || return 1
# mountd flags will differ depending on rc.conf settings
#
if checkyesno nfs_server_enable ; then
if checkyesno weak_mountd_authentication; then
rc_flags="${mountd_flags} -n"
fi
else
if checkyesno mountd_enable; then
checkyesno weak_mountd_authentication && rc_flags="-n"
fi
fi
# If oldnfs_server_enable is yes, force use of the old NFS server
#
if checkyesno oldnfs_server_enable; then
rc_flags="-o ${rc_flags}"
fi
if checkyesno zfs_enable; then
rc_flags="${rc_flags} /etc/exports /etc/zfs/exports"
fi
rm -f /var/db/mountdtab
( umask 022 ; > /var/db/mountdtab ) ||
err 1 'Cannot create /var/db/mountdtab'
}
load_rc_config $name
run_rc_command "$1"