rc.subr: Check for running daemons before a custom start_cmd is executed.
Currently rc scripts implementing their own start_cmd do not enjoy the benefits of rc.subr's own check for rc_pid. This leads to around a third of ports with such a start_cmd not to check for the process at all and two thirds of ports to re-implement this check (sometimes wrongly). This patch moves the check for rc_pid to before ${rc_arg}_cmd is executed. Submitted by: Dirk Engling Reviewed by: feld MFC after: 1 week Relnotes: yes Differential Revision: https://reviews.freebsd.org/D4156
This commit is contained in:
parent
61d1f7f291
commit
80fe6bcf09
16
etc/rc.subr
16
etc/rc.subr
@ -976,6 +976,14 @@ run_rc_command()
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ $rc_arg = "start" -a -z "$rc_fast" -a -n "$rc_pid" ]; then
|
||||
if [ -z "$rc_quiet" ]; then
|
||||
echo 1>&2 "${name} already running? " \
|
||||
"(pid=$rc_pid)."
|
||||
fi
|
||||
return 1
|
||||
fi
|
||||
|
||||
# if there's a custom ${XXX_cmd},
|
||||
# run that instead of the default
|
||||
#
|
||||
@ -1004,14 +1012,6 @@ run_rc_command()
|
||||
;;
|
||||
|
||||
start)
|
||||
if [ -z "$rc_fast" -a -n "$rc_pid" ]; then
|
||||
if [ -z "$rc_quiet" ]; then
|
||||
echo 1>&2 "${name} already running? " \
|
||||
"(pid=$rc_pid)."
|
||||
fi
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [ ! -x "${_chroot}${_chroot:+/}${command}" ]; then
|
||||
warn "run_rc_command: cannot run $command"
|
||||
return 1
|
||||
|
Loading…
Reference in New Issue
Block a user