Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 06 Jul 2011 13:33:32 -0700
From:      Doug Barton <dougb@FreeBSD.org>
To:        Boris Samorodov <bsam@ipt.ru>
Cc:        cvs-ports@FreeBSD.org, cvs-all@FreeBSD.org, ports-committers@FreeBSD.org
Subject:   Re: cvs commit: ports/multimedia/zoneminder/files zm.in
Message-ID:  <4E14C69C.8030200@FreeBSD.org>
In-Reply-To: <00116999@h30.sp.ipt.ru>
References:  <201107061434.p66EY0OG062221@repoman.freebsd.org>	<4E14B6E4.50609@FreeBSD.org> <00116999@h30.sp.ipt.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
On 07/06/2011 13:15, Boris Samorodov wrote:
> Hello All,
>
> Doug, thanks for you help.

Glad to help. :)

> On Wed, 06 Jul 2011 12:26:28 -0700 Doug Barton wrote:
>> On 07/06/2011 07:34, Boris Samorodov wrote:
>
>>>     . do a 10 seconds pause only at system startup.
>
>> The question is, what is your goal for including that? Does zoneminder
>> need this delay after it starts? Before it starts? If so, then the
>> right thing to do is likely to put it in either a start_precmd or
>> start_postcmd. That way you get 'checkyesno zoneminder_enable' for
>> free. If the delay is only applicable at boot time, then you
>> can/should include the code that you added in this version.
>
> Actually the problem is run time mysqld dependency.
> The option REQUIRE: mysql is not efficient here. I'm not sure what/how
> mysql is started, but zoneminder can not start right after mysql is
> up. If I use 5 seconds pause, zoneminder starts successfully at 50%
> of bootings. Ten seconds pause is enough to start zoneminder.
>
> So, this delay is needed  only at machine booting time. I'm not sure if
> start_precmd is any way better here.

Yeah, you'd want to do that in a start_precmd, and probably testing for 
autoboot is better than faststart. So something like:

start_precmd=zm_prestart

zm_prestart()
{
	[ -n "$autoboot" ] && sleep 10
}

Of course, if there was some mysql command you could run to verify that 
the db is up that would be better than an unconditional sleep. Something 
like this:

zm_prestart()
{
	local _count=0

	while : ; do
		<mysqltestcommand> && return

		_count=$(( $_count + 1 ))
		if [ $_count -gt 10 ]; then
			err 1 "${name}: <mysqltestcommand> failed"
		fi

		sleep 1
	done
}


hth,

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?4E14C69C.8030200>