diff options
author | dougb <dougb@FreeBSD.org> | 2012-02-14 10:51:24 +0000 |
---|---|---|
committer | dougb <dougb@FreeBSD.org> | 2012-02-14 10:51:24 +0000 |
commit | 5abebddb436aac4d1f396c82a98743aa0a774aa6 (patch) | |
tree | 25bb26903a57056ed6ba1543fab1af2635184b77 /etc/rc.subr | |
parent | a6e5cd41ae1c223f22bef504edae255aea74c2e1 (diff) | |
download | FreeBSD-src-5abebddb436aac4d1f396c82a98743aa0a774aa6.zip FreeBSD-src-5abebddb436aac4d1f396c82a98743aa0a774aa6.tar.gz |
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.
Diffstat (limited to 'etc/rc.subr')
-rw-r--r-- | etc/rc.subr | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/etc/rc.subr b/etc/rc.subr index 0da7c07..e629bc7 100644 --- a/etc/rc.subr +++ b/etc/rc.subr @@ -71,22 +71,29 @@ set_rcvar_obsolete() } # -# force_depend script +# force_depend script [rcvar] # Force a service to start. Intended for use by services -# to resolve dependency issues. It is assumed the caller -# has check to make sure this call is necessary +# to resolve dependency issues. # $1 - filename of script, in /etc/rc.d, to run +# $2 - name of the script's rcvar (minus the _enable) # force_depend() { + local _depend _dep_rcvar + _depend="$1" + _dep_rcvar="${2:-$1}_enable" + + [ -n "$rc_fast" ] && ! checkyesno always_force_depends && + checkyesno $_dep_rcvar && return 0 + + /etc/rc.d/${_depend} forcestatus >/dev/null 2>&1 && return 0 info "${name} depends on ${_depend}, which will be forced to start." if ! /etc/rc.d/${_depend} forcestart; then warn "Unable to force ${_depend}. It may already be running." return 1 fi - return 0 } # |