diff options
author | jilles <jilles@FreeBSD.org> | 2015-12-04 16:32:29 +0000 |
---|---|---|
committer | jilles <jilles@FreeBSD.org> | 2015-12-04 16:32:29 +0000 |
commit | 24858cf7bbd333bc022ef13635e8f440888340d7 (patch) | |
tree | c244480bb8206451d5c2d6bab411c018e52c8607 /etc/rc.subr | |
parent | d1dd0d2cc3e7d2ad550c4e8dfeca3c30b0d8699d (diff) | |
download | FreeBSD-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.subr | 16 |
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 |