summaryrefslogtreecommitdiffstats
path: root/etc/rc.subr
diff options
context:
space:
mode:
authorflz <flz@FreeBSD.org>2006-08-22 11:17:29 +0000
committerflz <flz@FreeBSD.org>2006-08-22 11:17:29 +0000
commit54b7b1d84ef94edba4668e1a3eb0ae3f5af47ddf (patch)
tree83b9d9ba19106202890ea4e049a6ed5c3c9d6ea0 /etc/rc.subr
parent0c8554603327db9744c6c76b143eedd695c14561 (diff)
downloadFreeBSD-src-54b7b1d84ef94edba4668e1a3eb0ae3f5af47ddf.zip
FreeBSD-src-54b7b1d84ef94edba4668e1a3eb0ae3f5af47ddf.tar.gz
Backout this commit since it breaks startup and some scripts in
certain conditions. I haven't been able to find a better solution yet: - Set a two read-only variables (${prefix} and ${etcdir}). This is especially useful when using /etc/rc.d scripts with third-party software installed from ports. - Fix rc.d/sshd to work with openssh from ports using ${etcdir} instead of hardcoded /etc. - Reflect prefix/etcdir changes in rc.subr.8. src/etc/rc.d/sshd: rev 1.9 -> 1.10 src/etc/rc.subr: rev 1.51 -> 1.52 src/share/man/man8/rc.subr.8: rev 1.11 -> 1.12 Approved by: cperciva (mentor)
Diffstat (limited to 'etc/rc.subr')
-rw-r--r--etc/rc.subr35
1 files changed, 5 insertions, 30 deletions
diff --git a/etc/rc.subr b/etc/rc.subr
index 3a2fd16..36144cd 100644
--- a/etc/rc.subr
+++ b/etc/rc.subr
@@ -506,6 +506,9 @@ run_rc_command()
;;
esac
+ eval _override_command=\$${name}_program
+ command=${command:+${_override_command:-$command}}
+
_keywords="start stop restart rcvar $extra_commands"
rc_pid=
_pidcmd=
@@ -873,8 +876,6 @@ run_rc_script()
#
load_rc_config()
{
- local _tmp
-
_name=$1
if [ -z "$_name" ]; then
err 3 'USAGE: load_rc_config name'
@@ -893,35 +894,9 @@ load_rc_config()
fi
_rc_conf_loaded=true
fi
-
- eval _override_command=\$${name}_program
- command=${command:+${_override_command:-$command}}
-
- if [ -z "${command}" ]; then
- _tmp=`/bin/realpath $0`
- prefix=${_tmp%/etc/rc.d/*}/
- else
- prefix=${command%/*bin/*}/
- fi
- if [ "${prefix}" = "/" -o "${prefix}" = "/usr/" ] ; then
- etcdir="/etc"
- else
- etcdir="${prefix}etc"
- fi
-
- # XXX - Deprecated
- if [ -f /etc/rc.conf.d/${_name} -a ${etcdir} != "/etc" ]; then
+ if [ -f /etc/rc.conf.d/"$_name" ]; then
debug "Sourcing /etc/rc.conf.d/${_name}"
- warn "Warning: /etc/rc.conf.d/${_name} is deprecated, please use ${etcdir}/rc.conf.d/${_name} instead."
- if [ -f ${etcdir}/rc.conf.d/${_name} ]; then
- warn "Warning: Both /etc/rc.conf.d/${_name} and ${etcdir}/rc.conf.d/${_name} exist."
- fi
- . /etc/rc.conf.d/${_name}
- fi
-
- if [ -f ${etcdir}/rc.conf.d/${_name} ]; then
- debug "Sourcing ${etcdir}/rc.conf.d/${_name}"
- . ${etcdir}/rc.conf.d/${_name}
+ . /etc/rc.conf.d/"$_name"
fi
# XXX - Deprecated variable name support
OpenPOWER on IntegriCloud