20ceedfb69
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.
63 lines
1.3 KiB
Bash
Executable File
63 lines
1.3 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
|
|
# PROVIDE: nfsd
|
|
# REQUIRE: mountd hostname gssd nfsuserd
|
|
# KEYWORD: nojail shutdown
|
|
|
|
. /etc/rc.subr
|
|
|
|
name="nfsd"
|
|
rcvar="nfs_server_enable"
|
|
command="/usr/sbin/${name}"
|
|
|
|
load_rc_config $name
|
|
start_precmd="nfsd_precmd"
|
|
sig_stop="USR1"
|
|
|
|
nfsd_precmd()
|
|
{
|
|
if checkyesno oldnfs_server_enable; then
|
|
rc_flags="-o ${nfs_server_flags}"
|
|
|
|
# Load the module now, so that the vfs.nfsrv sysctl
|
|
# oids are available.
|
|
load_kld nfsserver
|
|
|
|
if checkyesno nfs_reserved_port_only; then
|
|
echo 'NFS on reserved port only=YES'
|
|
sysctl vfs.nfsrv.nfs_privport=1 > /dev/null
|
|
else
|
|
sysctl vfs.nfsrv.nfs_privport=0 > /dev/null
|
|
fi
|
|
else
|
|
rc_flags="${nfs_server_flags}"
|
|
|
|
# Load the modules now, so that the vfs.nfsd sysctl
|
|
# oids are available.
|
|
load_kld nfsd
|
|
|
|
if checkyesno nfs_reserved_port_only; then
|
|
echo 'NFS on reserved port only=YES'
|
|
sysctl vfs.nfsd.nfs_privport=1 > /dev/null
|
|
else
|
|
sysctl vfs.nfsd.nfs_privport=0 > /dev/null
|
|
fi
|
|
|
|
if checkyesno nfsv4_server_enable; then
|
|
sysctl vfs.nfsd.server_max_nfsvers=4 > /dev/null
|
|
force_depend nfsuserd || err 1 "Cannot run nfsuserd"
|
|
else
|
|
echo 'NFSv4 is disabled'
|
|
sysctl vfs.nfsd.server_max_nfsvers=3 > /dev/null
|
|
fi
|
|
fi
|
|
|
|
force_depend rpcbind || return 1
|
|
force_depend mountd || return 1
|
|
}
|
|
|
|
run_rc_command "$1"
|