Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 26 Aug 2011 23:44:56 +0200
From:      Jilles Tjoelker <jilles@stack.nl>
To:        d@delphij.net
Cc:        freebsd-rc@FreeBSD.ORG
Subject:   Re: [PATCH] Don't test if a service is enabled when it's required
Message-ID:  <20110826214456.GA41095@stack.nl>
In-Reply-To: <4E541A49.9050207@delphij.net>
References:  <4E50B5E3.90702@delphij.net> <20110821132045.GA3940@stack.nl> <4E541A49.9050207@delphij.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Aug 23, 2011 at 02:23:21PM -0700, Xin LI wrote:
> Thanks for Jilles' comments.  I've added a new procedure called
> fast_depend (poor name perhaps?) with a proposed changeset to all
> these rc.d scripts that uses force_depend.

> Comments?

This looks like it avoids the extra forks, good.

The scripts look cleaner now.

> Index: etc/rc.subr
> ===================================================================
> --- etc/rc.subr	(revision 225119)
> +++ etc/rc.subr	(working copy)
> @@ -159,6 +159,29 @@
>  }
>  
>  #
> +# fast_depend script [var] [prefix]
> +#	Force a service to start if it's not already, regardless
> +#	if it's enabled.  Intended for use by services
> +#	to resolve dependency issues.  When rc_fast is set,
> +#	only force the dependency if var is set to "NO".

It seems useful here to say why: because it will have been started
anyway if var is set to "YES".

> +#	$1 - script name
> +#	$2 - variable name if the variable to test is not ${1}_enable
> +#	$3 - prefix path if not the default /etc/rc.d

While useful, an alternate script directory cannot work because
force_depend does not support it.

> +#
> +fast_depend()
> +{
> +	_script="$1"
> +	_variable="${2:-${1}_enable}"
> +	_prefix="${3:-/etc/rc.d}"
> +
> +	if { [ -z "${rc_fast}" ] || ! checkyesno ${_variable}; } &&
> +		! ${_prefix}/${_script} forcestatus 1>/dev/null 2>&1
> +	then
> +		force_depend ${_script} || return 1
> +	fi
> +}
> +
> +#
>  # reverse_list list
>  #	print the list in reverse order
>  #

-- 
Jilles Tjoelker



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110826214456.GA41095>