From c5925c006f365eb663b75b2bfe82c606470ed457 Mon Sep 17 00:00:00 2001 From: jilles Date: Fri, 18 Dec 2015 19:58:34 +0000 Subject: [PATCH] MFC r291770: 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 Relnotes: yes git-svn-id: svn://svn.freebsd.org/base/stable/10@292450 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- etc/rc.subr | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/etc/rc.subr b/etc/rc.subr index b908f1bb8..5048c5207 100644 --- a/etc/rc.subr +++ b/etc/rc.subr @@ -974,6 +974,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 # @@ -1002,14 +1010,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 -- 2.45.0