Page MenuHomeFreeBSD

D36259.id111917.diff
No OneTemporary

D36259.id111917.diff

diff --git a/libexec/rc/rc.subr b/libexec/rc/rc.subr
--- a/libexec/rc/rc.subr
+++ b/libexec/rc/rc.subr
@@ -806,7 +806,8 @@
#
# ${name}_prepend n Command added before ${command}.
#
-# ${name}_setup n Command executed before ${command}.
+# ${name}_setup n Command executed during a (re)start before
+# ${command} or a reload before ${sig_reload}.
#
# ${name}_login_class n Login class to use, else "daemon".
#
@@ -1047,9 +1048,9 @@
return 1
fi
- # if there's a custom ${XXX_cmd},
- # run that instead of the default
- #
+ # if there's a custom ${XXX_cmd},
+ # run that instead of the default
+ #
eval _cmd=\$${rc_arg}_cmd \
_precmd=\$${rc_arg}_precmd \
_postcmd=\$${rc_arg}_postcmd
@@ -1058,6 +1059,11 @@
if [ -n "$_env" ]; then
eval "export -- $_env"
fi
+ # service can redefine all so check for valid targets
+ if [ "$rc_arg" = 'start' -o "$rc_arg" = 'restart' -o \
+ "$rc_arg" = 'reload' ]; then
+ _run_rc_setup || warn "failed to setup ${name}"
+ fi
_run_rc_precmd || return 1
_run_rc_doit "$_cmd $rc_extra_args" || return 1
_run_rc_postcmd
@@ -1118,13 +1124,15 @@
return 1
fi
+ _run_rc_setup || warn "failed to setup ${name}"
+
if ! _run_rc_precmd; then
warn "failed precmd routine for ${name}"
return 1
fi
- # setup the full command to run
- #
+ # setup the full command to run
+ #
startmsg "Starting ${name}."
if [ -n "$_chroot" ]; then
_cd=
@@ -1154,24 +1162,18 @@
fi
fi
- if [ -n "$_setup" ]; then
- if ! _run_rc_doit "$_setup"; then
- warn "failed to setup ${name}"
- fi
- fi
-
- # Prepend default limits
+ # Prepend default limits
_doit="$_cd limits -C $_login_class $_limits $_doit"
- # run the full command
- #
+ # run the full command
+ #
if ! _run_rc_doit "$_doit"; then
warn "failed to start ${name}"
return 1
fi
- # finally, run postcmd
- #
+ # finally, run postcmd
+ #
_run_rc_postcmd
;;
@@ -1203,6 +1205,8 @@
return 1
fi
+ _run_rc_setup || warn "failed to setup ${name}"
+
_run_rc_precmd || return 1
_doit=$(_run_rc_killcmd "${sig_reload:-HUP}")
@@ -1327,6 +1331,7 @@
# _precmd R
# _postcmd R
# _return W
+# _setup R
#
_run_rc_precmd()
{
@@ -1358,6 +1363,19 @@
return 0
}
+_run_rc_setup()
+{
+ if [ -n "$_setup" ]; then
+ debug "run_rc_command: ${rc_arg}_setup: $_setup"
+ eval "$_setup"
+ _return=$?
+ if [ $_return -ne 0 ]; then
+ return 1
+ fi
+ fi
+ return 0
+}
+
_run_rc_doit()
{
local _m

File Metadata

Mime Type
text/plain
Expires
Fri, Dec 12, 10:33 AM (5 h, 52 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
26894282
Default Alt Text
D36259.id111917.diff (2 KB)

Event Timeline