svn commit: r291770 - head/etc

Jilles Tjoelker jilles at FreeBSD.org
Fri Dec 4 16:32:31 UTC 2015


Author: jilles
Date: Fri Dec  4 16:32:29 2015
New Revision: 291770
URL: https://svnweb.freebsd.org/changeset/base/291770

Log:
  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

Modified:
  head/etc/rc.subr

Modified: head/etc/rc.subr
==============================================================================
--- head/etc/rc.subr	Fri Dec  4 14:43:53 2015	(r291769)
+++ head/etc/rc.subr	Fri Dec  4 16:32:29 2015	(r291770)
@@ -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


More information about the svn-src-head mailing list