From owner-freebsd-hackers@FreeBSD.ORG Sat Nov 26 06:01:03 2011 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 840881065675 for ; Sat, 26 Nov 2011 06:01:03 +0000 (UTC) (envelope-from gmx@ross.cx) Received: from www81.your-server.de (www81.your-server.de [213.133.104.81]) by mx1.freebsd.org (Postfix) with ESMTP id 433118FC14 for ; Sat, 26 Nov 2011 06:01:03 +0000 (UTC) Received: from [188.108.235.211] (helo=michael-think) by www81.your-server.de with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1RUB3E-0008BC-JB; Sat, 26 Nov 2011 06:43:48 +0100 Content-Type: text/plain; charset=iso-8859-15; format=flowed; delsp=yes To: "Christian Kastner" , "Jason Hellenthal" References: <20111125070241.GA7915@DataIX.net> <4ED00A68.4040606@kvr.at> <20111126051121.GA4628@DataIX.net> Date: Sat, 26 Nov 2011 06:43:38 +0100 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: "Michael Ross" Message-ID: In-Reply-To: <20111126051121.GA4628@DataIX.net> User-Agent: Opera Mail/11.52 (Win32) X-Authenticated-Sender: gmx@ross.cx X-Virus-Scanned: Clear (ClamAV 0.97.3/13991/Sat Nov 26 00:07:28 2011) X-Mailman-Approved-At: Sat, 26 Nov 2011 12:24:11 +0000 Cc: freebsd-hackers@freebsd.org Subject: Re: cron(8) mis-feature with @reboot long after system startup X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 26 Nov 2011 06:01:03 -0000 Am 26.11.2011, 06:11 Uhr, schrieb Jason Hellenthal : > > > On Fri, Nov 25, 2011 at 10:36:40PM +0100, Christian Kastner wrote: >> Hi, >> >> On 2011-11-25 08:02, Jason Hellenthal wrote: >> > So with that said... is there a way we could actually make this run >> @reboot only ? >> >> Debian's cron[0] and Fedora's cronie[1] have solved this by touching a >> file on first startup and running @reboot only when this file does not >> yet exist. >> >> Note that while [0] may point to other patches that might be of interest >> to FreeBSD, they are still WIP (as evident from the linked patch) as we >> are still in the process of quiltifying our current code base. >> > > While this sounds like a perfectly sane way to handle the problem at > hand this also introduces a need to write some cleanup code to take care > of the file semantics. I think comparing daemon start times to the time > a system was booted or similiar would alleviate the need for all that. > Maybe a flag for @reboot "-s " seconds after boottime to allow > running @reboot jobs. And set the default to 3600 seconds. At least this > would allow adjustment for those startup processes that may take some > considerable time before multiuser mode is entered. > > Just some thought. > > I really don't think we need to go the route of using files to store > information when there is enough information available already via > syscall's. If system startup were to be unusually delayed (dhcp or nfs trouble eg), $time_period might have passed when cron starts, so there would have to be some notifying mechanism for @reboot jobs not being run, and operator action would be required. One could "cron restart" within $time_period and run @reboot twice. I don't like this idea. In my bikeshed, @reboot should be called @cronstart, but it shouldn't because of uniformity across OSs. The cron manpage should reflect the actual behaviour (already patched in svn), and all "definitely only on boot"-scripts should go in local/etc/rc.d. Michael