Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Apr 2011 09:03:31 -0700
From:      Doug Barton <dougb@FreeBSD.org>
To:        Jilles Tjoelker <jilles@stack.nl>
Cc:        Garrett Cooper <yanegomi@gmail.com>, "freebsd-rc@FreeBSD.org" <freebsd-rc@freebsd.org>, "ggg_mail@inbox.ru" <ggg_mail@inbox.ru>
Subject:   Re: Finding $pidfile from a conf file (Was: Re: conf/153460: devd(8) cannot be restarted correctly via /etc/rc.d script)
Message-ID:  <4DB2F853.3020202@FreeBSD.org>
In-Reply-To: <20110423104230.GA57811@stack.nl>
References:  <201012272253.oBRMrH7k025331@freefall.freebsd.org> <1232C1B4-DA64-4332-906E-288B8C1E39FE@gmail.com> <4D1A3DFE.8090009@FreeBSD.org> <AANLkTinRSC_pBVdK_m8Hrk=_32mjMZDSc77__5iUyV_Z@mail.gmail.com> <4DACC455.4040603@FreeBSD.org> <20110421232840.GA29218@stack.nl> <4DB0D081.6090900@FreeBSD.org> <20110423104230.GA57811@stack.nl>

next in thread | previous in thread | raw e-mail | index | archive | help
On 04/23/2011 03:42, Jilles Tjoelker wrote:
> On Thu, Apr 21, 2011 at 05:49:05PM -0700, Doug Barton wrote:
>> On 04/21/2011 16:28, Jilles Tjoelker wrote:
>>>> 		line="/${line%%[\"\;]*}"
>
>>> The meaning of this line depends on the version of sh(1). The correct
>>> interpretation, used by sh in 9-current and most other shells, is to
>>> strip from the first double-quote or semicolon onwards. However, sh in
>>> older FreeBSD versions will strip from the first backslash, double-quote
>>> or semicolon onwards.
>
>>> If the 9-current behaviour is desired for all FreeBSD versions, use:
>>> 		line=/${line%%[\"\;]*}
>
>> I think it's incredibly unlikely that there would actually be a
>> backslash in the text, and even if there was, it should be ok to strip
>> from there.
>
> Even if there is, it seems bad if this differs between 8.x and 9.x.

So MFC your changes. :)

> The only reasons to quote expansions in assignments are paranoia

Yeah, I'm Ok with that.

FYI, I got this in last night, using the modified pass-by-reference 
version that I mentioned in my last post (as a result of your 
suggestion). It turns out that to make this work it's necessary to run 
the routine to check the pidfile both in start and stop _precmd. That 
makes sense of course, just thought I'd mention it. I also learned that 
if you redirect stderr from the function call you miss error messages 
generated in it, so my example implementation for ports is a little 
different than what I first posted. See 
http://www.freebsd.org/cgi/query-pr.cgi?pr=156594 for what I ended up with.


Doug

-- 

	Nothin' ever doesn't change, but nothin' changes much.
			-- OK Go

	Breadth of IT experience, and depth of knowledge in the DNS.
	Yours for the right price.  :)  http://SupersetSolutions.com/




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