From owner-freebsd-questions@FreeBSD.ORG Tue Nov 18 12:12:43 2008 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B991D1065670 for ; Tue, 18 Nov 2008 12:12:43 +0000 (UTC) (envelope-from fbsd06+3Z=0051bdda@mlists.homeunix.com) Received: from fallback-in1.mxes.net (fallback-out1.mxes.net [216.86.168.190]) by mx1.freebsd.org (Postfix) with ESMTP id 886548FC17 for ; Tue, 18 Nov 2008 12:12:43 +0000 (UTC) (envelope-from fbsd06+3Z=0051bdda@mlists.homeunix.com) Received: from mxout-08.mxes.net (mxout-08.mxes.net [216.86.168.183]) by fallback-in1.mxes.net (Postfix) with ESMTP id EB0F9164685 for ; Tue, 18 Nov 2008 07:01:28 -0500 (EST) Received: from gumby.homeunix.com (unknown [87.81.140.128]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.mxes.net (Postfix) with ESMTP id 285C3D0563 for ; Tue, 18 Nov 2008 07:01:26 -0500 (EST) Date: Tue, 18 Nov 2008 12:01:05 +0000 From: RW To: freebsd-questions@freebsd.org Message-ID: <20081118120105.4776f731@gumby.homeunix.com> In-Reply-To: <1E519418-C8C4-4DD5-BFDC-F95158DA097E@todoo.biz> References: <1E519418-C8C4-4DD5-BFDC-F95158DA097E@todoo.biz> X-Mailer: Claws Mail 3.5.0 (GTK+ 2.12.11; i386-portbld-freebsd7.0) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: Delay startup of services in rc.conf || elswhere X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Nov 2008 12:12:43 -0000 On Tue, 18 Nov 2008 12:05:33 +0100 bsd wrote: > Hello, > > > I have a server configured to start 10 services at startup (in /etc/ > rc.conf) > > Unfortunately, the startup of MySQL seems to be returning "ok" > before It actually has started completely the program___ the next > program rely on MySQL and does not start well because the database is > not "fully" started. > > I would like to introduce something like a "sleep 10" timer in the > service startup process___ The cleanest solution is to create a minimal rc script that will sort between the mysql and the affected services, and just give it a start command that pauses for 10 seconds. I do a similar thing where I poll for network access before allowing anything that relies on it to start. #!/bin/sh # # PROVIDE: networkwait # REQUIRE: named # BEFORE: ntpdate . /etc/rc.subr networkwait_enable=${networkwait_enable:-"NO"} name="networkwait" rcvar=`set_rcvar` stop_cmd=":" start_cmd="networkwait_start" networkwait_start(){ if [ "$networkwait_ping_hosts" ] ; then host_list="${networkwait_ping_hosts}" else # No hosts supplied - use external nameservers host_list=`awk '/^ *nameserver/ {print $2} '< /etc/resolv.conf | grep -E -v '^127\.0+\.0+\.0*1'` fi echo -n "Waiting for network access ... " while true ; do for inet_host in $host_list ; do if ping -nc1 $inet_host 2>&1 > /dev/null ; then echo "ping to ${inet_host} succeeded." # Re-Sync ipfilter and pf in case # they had failed DNS lookups /etc/rc.d/ipfilter resync /etc/rc.d/pf resync exit 0 fi done sleep 5 done } load_rc_config ${name} run_rc_command "$1"