summaryrefslogtreecommitdiffstats
path: root/etc/rc.subr
diff options
context:
space:
mode:
authorjilles <jilles@FreeBSD.org>2015-12-04 16:32:29 +0000
committerjilles <jilles@FreeBSD.org>2015-12-04 16:32:29 +0000
commit24858cf7bbd333bc022ef13635e8f440888340d7 (patch)
treec244480bb8206451d5c2d6bab411c018e52c8607 /etc/rc.subr
parentd1dd0d2cc3e7d2ad550c4e8dfeca3c30b0d8699d (diff)
downloadFreeBSD-src-24858cf7bbd333bc022ef13635e8f440888340d7.zip
FreeBSD-src-24858cf7bbd333bc022ef13635e8f440888340d7.tar.gz
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
Diffstat (limited to 'etc/rc.subr')
-rw-r--r--etc/rc.subr16
1 files changed, 8 insertions, 8 deletions
diff --git a/etc/rc.subr b/etc/rc.subr
index 904a5bd..a6de452 100644
--- a/etc/rc.subr
+++ b/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
OpenPOWER on IntegriCloud