From owner-freebsd-hackers@FreeBSD.ORG Sat Nov 26 19:00:48 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 42912106566C for ; Sat, 26 Nov 2011 19:00:48 +0000 (UTC) (envelope-from jhellenthal@gmail.com) Received: from mail-ww0-f50.google.com (mail-ww0-f50.google.com [74.125.82.50]) by mx1.freebsd.org (Postfix) with ESMTP id C50DA8FC08 for ; Sat, 26 Nov 2011 19:00:47 +0000 (UTC) Received: by wwe5 with SMTP id 5so4133204wwe.31 for ; Sat, 26 Nov 2011 11:00:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to; bh=VdhtrSpBu0KimZBzczrZhJr83/xsHltRoDEM7k5lwH0=; b=jf1tPWrHJnlRJz1UKLnDDwRICO3Ti52NjskTpkwOZlASZrMWhbCN4iEVm/k7CY+vH5 NR2dtA9i9jHAOVucH7E0n29QYLoOXlLvlN34lNSFaJVjyWKSNGSKYt7saWOuu7T4nQuG NbpusD9fllQmIyHUNR/sYyYSaFYCTmJi+656g= Received: by 10.227.206.129 with SMTP id fu1mr24676130wbb.22.1322334046895; Sat, 26 Nov 2011 11:00:46 -0800 (PST) Received: from DataIX.net (ppp-21.81.dialinfree.com. [209.172.21.81]) by mx.google.com with ESMTPS id 6sm19532779wby.22.2011.11.26.11.00.42 (version=TLSv1/SSLv3 cipher=OTHER); Sat, 26 Nov 2011 11:00:45 -0800 (PST) Sender: Jason Hellenthal Received: from DataIX.net (localhost [127.0.0.1]) by DataIX.net (8.14.5/8.14.5) with ESMTP id pAQJ0ZPn058601 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 26 Nov 2011 14:00:36 -0500 (EST) (envelope-from jhell@DataIX.net) Received: (from jhell@localhost) by DataIX.net (8.14.5/8.14.5/Submit) id pAQJ0U7B058600; Sat, 26 Nov 2011 14:00:30 -0500 (EST) (envelope-from jhell@DataIX.net) Date: Sat, 26 Nov 2011 14:00:30 -0500 From: Jason Hellenthal To: Michael Ross Message-ID: <20111126190030.GA58253@DataIX.net> References: <20111125070241.GA7915@DataIX.net> <4ED00A68.4040606@kvr.at> <20111126051121.GA4628@DataIX.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Cc: Christian Kastner , 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 19:00:48 -0000 On Sat, Nov 26, 2011 at 06:43:38AM +0100, Michael Ross wrote: > 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. > I agree but also disagree. 1 hour or 3600 seconds is plenty of time to wait for the "@reboot" extension scripts to fire. > 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. > This has nothing to do with rc.d. This is a cron(8) problem only.