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>