summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Barton <dougb@FreeBSD.org>2012-02-15 23:00:31 +0000
committerDoug Barton <dougb@FreeBSD.org>2012-02-15 23:00:31 +0000
commit44fb8b8bfa7af57e09d8646122639028d57e3178 (patch)
tree47ea8da7fe10549d7d9dc1d7617c54e9a2d241de
parent644c27b22f2df23a472a9bcf0c333cb9b48f7587 (diff)
downloadsrc-test-44fb8b8bfa7af57e09d8646122639028d57e3178.tar.gz
src-test-44fb8b8bfa7af57e09d8646122639028d57e3178.zip
Notes
-rw-r--r--etc/defaults/rc.conf2
-rwxr-xr-xetc/rc.d/amd12
-rwxr-xr-xetc/rc.d/apmd10
-rwxr-xr-xetc/rc.d/keyserv8
-rwxr-xr-xetc/rc.d/lockd18
-rwxr-xr-xetc/rc.d/mountd10
-rwxr-xr-xetc/rc.d/nfsd14
-rwxr-xr-xetc/rc.d/statd17
-rwxr-xr-xetc/rc.d/ypbind14
-rwxr-xr-xetc/rc.d/yppasswdd21
-rwxr-xr-xetc/rc.d/ypserv13
-rwxr-xr-xetc/rc.d/ypset19
-rwxr-xr-xetc/rc.d/ypupdated16
-rwxr-xr-xetc/rc.d/ypxfrd19
-rw-r--r--etc/rc.subr15
15 files changed, 67 insertions, 141 deletions
diff --git a/etc/defaults/rc.conf b/etc/defaults/rc.conf
index 8a75cd7b9c62d..63d16e2392b35 100644
--- a/etc/defaults/rc.conf
+++ b/etc/defaults/rc.conf
@@ -29,6 +29,8 @@ early_late_divider="FILESYSTEMS" # Script that separates early/late
# stages of the boot process. Make sure you know
# the ramifications if you change this.
# See rc.conf(5) for more details.
+always_force_depends="NO" # Set to check that indicated dependencies are
+ # running during boot (can increase boot time).
swapfile="NO" # Set to name of swapfile if aux swapfile desired.
apm_enable="NO" # Set to YES to enable APM BIOS functions (or NO).
diff --git a/etc/rc.d/amd b/etc/rc.d/amd
index e313f0cd24905..2ed70ebfb1063 100755
--- a/etc/rc.d/amd
+++ b/etc/rc.d/amd
@@ -19,15 +19,8 @@ extra_commands="reload"
amd_precmd()
{
- if ! checkyesno nfs_client_enable; then
- force_depend nfsclient || return 1
- fi
-
- if ! checkyesno rpcbind_enable && \
- ! /etc/rc.d/rpcbind forcestatus 1>/dev/null 2>&1
- then
- force_depend rpcbind || return 1
- fi
+ force_depend nfsclient nfs_client || return 1
+ force_depend rpcbind || return 1
case ${amd_map_program} in
[Nn][Oo] | '')
@@ -49,7 +42,6 @@ amd_precmd()
command_args="> /var/run/amd.pid 2> /dev/null"
;;
esac
- return 0
}
load_rc_config $name
diff --git a/etc/rc.d/apmd b/etc/rc.d/apmd
index 2a326c18726fb..beca9121172ae 100755
--- a/etc/rc.d/apmd
+++ b/etc/rc.d/apmd
@@ -19,24 +19,18 @@ apmd_prestart()
{
case `${SYSCTL_N} hw.machine_arch` in
i386)
- # Enable apm if it is not already enabled
- if ! checkyesno apm_enable && \
- ! /etc/rc.d/apm forcestatus 1>/dev/null 2>&1
- then
- force_depend apm || return 1
- fi
+ force_depend apm || return 1
# Warn user about acpi apm compatibility support which
# does not work with apmd.
if [ ! -e /dev/apmctl ]; then
- warn "/dev/apmctl not found; kernel is missing apm(4)"
+ warn "/dev/apmctl not found; kernel is missing apm(4)"
fi
;;
*)
return 1
;;
esac
- return 0
}
load_rc_config $name
diff --git a/etc/rc.d/keyserv b/etc/rc.d/keyserv
index 84b169a471ce0..33c631a6df8ba 100755
--- a/etc/rc.d/keyserv
+++ b/etc/rc.d/keyserv
@@ -19,13 +19,7 @@ start_precmd="keyserv_prestart"
keyserv_prestart()
{
- if ! checkyesno rpcbind_enable && \
- ! /etc/rc.d/rpcbind forcestatus 1>/dev/null 2>&1
- then
- force_depend rpcbind || return 1
- fi
-
- return 0
+ force_depend rpcbind || return 1
}
load_rc_config $name
diff --git a/etc/rc.d/lockd b/etc/rc.d/lockd
index 1a3fc6b8ee859..26edead91be65 100755
--- a/etc/rc.d/lockd
+++ b/etc/rc.d/lockd
@@ -15,28 +15,16 @@ name="lockd"
rcvar=rpc_lockd_enable
command="/usr/sbin/rpc.${name}"
start_precmd='lockd_precmd'
-stop_precmd='checkyesno nfs_server_enable || checkyesno nfs_client_enable'
-status_precmd=$stop_precmd
# Make sure that we are either an NFS client or server, and that we get
# the correct flags from rc.conf(5).
#
lockd_precmd()
{
- local ret
- ret=0
-
- if ! checkyesno nfs_server_enable && ! checkyesno nfs_client_enable
- then
- ret=1
- fi
- if ! checkyesno rpcbind_enable && \
- ! /etc/rc.d/rpcbind forcestatus 1>/dev/null 2>&1
- then
- force_depend rpcbind || ret=1
- fi
+ force_depend rpcbind || return 1
+ force_depend statd rpc_statd || return 1
+
rc_flags=${rpc_lockd_flags}
- return ${ret}
}
load_rc_config $name
diff --git a/etc/rc.d/mountd b/etc/rc.d/mountd
index 102def14ed4d1..f85b9ead1457e 100755
--- a/etc/rc.d/mountd
+++ b/etc/rc.d/mountd
@@ -19,11 +19,7 @@ extra_commands="reload"
mountd_precmd()
{
- if ! checkyesno rpcbind_enable && \
- ! /etc/rc.d/rpcbind forcestatus 1>/dev/null 2>&1
- then
- force_depend rpcbind || return 1
- fi
+ force_depend rpcbind || return 1
# mountd flags will differ depending on rc.conf settings
#
@@ -49,8 +45,8 @@ mountd_precmd()
fi
rm -f /var/db/mountdtab
- ( umask 022 ; > /var/db/mountdtab )
- return 0
+ ( umask 022 ; > /var/db/mountdtab ) ||
+ err 1 'Cannot create /var/db/mountdtab'
}
load_rc_config $name
diff --git a/etc/rc.d/nfsd b/etc/rc.d/nfsd
index 0c1d636af98d9..dcd54fdcf7444 100755
--- a/etc/rc.d/nfsd
+++ b/etc/rc.d/nfsd
@@ -43,18 +43,8 @@ nfsd_precmd()
fi
fi
- if ! checkyesno rpcbind_enable && \
- ! /etc/rc.d/rpcbind forcestatus 1>/dev/null 2>&1
- then
- force_depend rpcbind || return 1
- fi
-
- if ! checkyesno mountd_enable && \
- ! /etc/rc.d/mountd forcestatus 1>/dev/null 2>&1
- then
- force_depend mountd || return 1
- fi
- return 0
+ force_depend rpcbind || return 1
+ force_depend mountd || return 1
}
run_rc_command "$1"
diff --git a/etc/rc.d/statd b/etc/rc.d/statd
index 85e003df05603..b97db186b3232 100755
--- a/etc/rc.d/statd
+++ b/etc/rc.d/statd
@@ -15,28 +15,15 @@ name="statd"
rcvar=rpc_statd_enable
command="/usr/sbin/rpc.${name}"
start_precmd='statd_precmd'
-stop_precmd='checkyesno nfs_server_enable || checkyesno nfs_client_enable'
-status_precmd=$stop_precmd
# Make sure that we are either an NFS client or server, and that we get
# the correct flags from rc.conf(5).
#
statd_precmd()
{
- local ret
- ret=0
-
- if ! checkyesno nfs_server_enable && ! checkyesno nfs_client_enable
- then
- ret=1
- fi
- if ! checkyesno rpcbind_enable && \
- ! /etc/rc.d/rpcbind forcestatus 1>/dev/null 2>&1
- then
- force_depend rpcbind || ret=1
- fi
+ force_depend rpcbind || return 1
+
rc_flags=${rpc_statd_flags}
- return ${ret}
}
load_rc_config $name
diff --git a/etc/rc.d/ypbind b/etc/rc.d/ypbind
index 4dbf3519f3909..71aea92c80333 100755
--- a/etc/rc.d/ypbind
+++ b/etc/rc.d/ypbind
@@ -11,22 +11,20 @@
. /etc/rc.subr
name="ypbind"
-command="/usr/sbin/${name}"
-start_precmd="ypbind_precmd"
+rcvar="nis_client_enable"
load_rc_config $name
-rcvar="nis_client_enable"
+
+command="/usr/sbin/${name}"
command_args="${nis_client_flags}"
+start_precmd="ypbind_precmd"
+
ypbind_precmd()
{
local _domain
- if ! checkyesno rpcbind_enable && \
- ! /etc/rc.d/rpcbind forcestatus 1>/dev/null 2>&1
- then
- force_depend rpcbind || return 1
- fi
+ force_depend rpcbind || return 1
_domain=`domainname`
if [ -z "$_domain" ]; then
diff --git a/etc/rc.d/yppasswdd b/etc/rc.d/yppasswdd
index fbb80bcf443a3..cc25d9f6b1e0d 100755
--- a/etc/rc.d/yppasswdd
+++ b/etc/rc.d/yppasswdd
@@ -11,27 +11,22 @@
. /etc/rc.subr
name="yppasswdd"
-command="/usr/sbin/rpc.${name}"
-start_precmd="yppasswdd_precmd"
+rcvar="nis_yppasswdd_enable"
load_rc_config $name
-rcvar="nis_yppasswdd_enable"
+
+command="/usr/sbin/rpc.${name}"
command_args="${nis_yppasswdd_flags}"
+start_precmd="yppasswdd_precmd"
+
yppasswdd_precmd()
{
local _domain
- if ! checkyesno rpcbind_enable && \
- ! /etc/rc.d/rpcbind forcestatus 1>/dev/null 2>&1
- then
- force_depend rpcbind || return 1
- fi
- if ! checkyesno nis_server_enable && \
- ! /etc/rc.d/ypserv forcestatus 1>/dev/null 2>&1
- then
- force_depend ypserv || return 1
- fi
+ force_depend rpcbind || return 1
+ force_depend ypserv nis_server || return 1
+
_domain=`domainname`
if [ -z "$_domain" ]; then
warn "NIS domainname(1) is not set."
diff --git a/etc/rc.d/ypserv b/etc/rc.d/ypserv
index 8e17fd77398bf..90e70614717fa 100755
--- a/etc/rc.d/ypserv
+++ b/etc/rc.d/ypserv
@@ -11,21 +11,20 @@
name="ypserv"
rcvar="nis_server_enable"
-command="/usr/sbin/${name}"
-start_precmd="ypserv_prestart"
load_rc_config $name
+
+command="/usr/sbin/${name}"
command_args="${nis_server_flags}"
+start_precmd="ypserv_prestart"
+
ypserv_prestart()
{
local _domain
- if ! checkyesno rpcbind_enable && \
- ! /etc/rc.d/rpcbind forcestatus 1>/dev/null 2>&1
- then
- force_depend rpcbind || return 1
- fi
+ force_depend rpcbind || return 1
+
_domain=`domainname`
if [ -z "$_domain" ]; then
warn "NIS domainname(1) is not set."
diff --git a/etc/rc.d/ypset b/etc/rc.d/ypset
index 78c408bde8ddd..f725545ac5630 100755
--- a/etc/rc.d/ypset
+++ b/etc/rc.d/ypset
@@ -11,25 +11,20 @@
name="ypset"
rcvar="nis_ypset_enable"
-command="/usr/sbin/${name}"
-start_precmd="ypset_precmd"
+
load_rc_config $name
+
+command="/usr/sbin/${name}"
command_args="${nis_ypset_flags}"
+start_precmd="ypset_precmd"
+
ypset_precmd()
{
local _domain
- if ! checkyesno rpcbind_enable && \
- ! /etc/rc.d/rpcbind forcestatus 1>/dev/null 2>&1
- then
- force_depend rpcbind || return 1
- fi
- if ! checkyesno nis_client_enable && \
- ! /etc/rc.d/ypbind forcestatus 1>/dev/null 2>&1
- then
- force_depend ypbind || return 1
- fi
+ force_depend rpcbind || return 1
+ force_depend ypbind nis_client || return 1
_domain=`domainname`
if [ -z "$_domain" ]; then
diff --git a/etc/rc.d/ypupdated b/etc/rc.d/ypupdated
index 98ef2038565f1..4098bd773c3e8 100755
--- a/etc/rc.d/ypupdated
+++ b/etc/rc.d/ypupdated
@@ -11,6 +11,9 @@
name="ypupdated"
rcvar="rpc_ypupdated_enable"
+
+load_rc_config $name
+
command="/usr/sbin/rpc.${name}"
start_precmd="rpc_ypupdated_precmd"
@@ -18,16 +21,8 @@ rpc_ypupdated_precmd()
{
local _domain
- if ! checkyesno rpcbind_enable && \
- ! /etc/rc.d/rpcbind forcestatus 1>/dev/null 2>&1
- then
- force_depend rpcbind || return 1
- fi
- if ! checkyesno nis_server_enable && \
- ! /etc/rc.d/ypserv forcestatus 1>/dev/null 2>&1
- then
- force_depend ypserv || return 1
- fi
+ force_depend rpcbind || return 1
+ force_depend ypserv nis_server || return 1
_domain=`domainname`
if [ -z "$_domain" ]; then
@@ -36,5 +31,4 @@ rpc_ypupdated_precmd()
fi
}
-load_rc_config $name
run_rc_command "$1"
diff --git a/etc/rc.d/ypxfrd b/etc/rc.d/ypxfrd
index f125a30159db6..63924e468f0f3 100755
--- a/etc/rc.d/ypxfrd
+++ b/etc/rc.d/ypxfrd
@@ -11,25 +11,20 @@
name="ypxfrd"
rcvar="nis_ypxfrd_enable"
-command="/usr/sbin/rpc.${name}"
-start_precmd="ypxfrd_precmd"
+
load_rc_config $name
+
+command="/usr/sbin/rpc.${name}"
command_args="${nis_ypxfrd_flags}"
+start_precmd="ypxfrd_precmd"
+
ypxfrd_precmd()
{
local _domain
- if ! checkyesno rpcbind_enable && \
- ! /etc/rc.d/rpcbind forcestatus 1>/dev/null 2>&1
- then
- force_depend rpcbind || return 1
- fi
- if ! checkyesno nis_server_enable && \
- ! /etc/rc.d/ypserv forcestatus 1>/dev/null 2>&1
- then
- force_depend ypserv || return 1
- fi
+ force_depend rpcbind || return 1
+ force_depend ypserv nis_server || return 1
_domain=`domainname`
if [ -z "$_domain" ]; then
diff --git a/etc/rc.subr b/etc/rc.subr
index 8c5f33754ca64..625b14b4ab053 100644
--- a/etc/rc.subr
+++ b/etc/rc.subr
@@ -113,22 +113,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
}
#