From owner-freebsd-hackers@freebsd.org Fri Aug 26 15:54:58 2016 Return-Path: Delivered-To: freebsd-hackers@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1B6C0B74215 for ; Fri, 26 Aug 2016 15:54:58 +0000 (UTC) (envelope-from crest@rlwinm.de) Received: from smtp.rlwinm.de (smtp.rlwinm.de [IPv6:2a01:4f8:201:31ef::e]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A63E2E7 for ; Fri, 26 Aug 2016 15:54:57 +0000 (UTC) (envelope-from crest@rlwinm.de) Received: from vader9.bultmann.eu (unknown [87.253.189.132]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.rlwinm.de (Postfix) with ESMTPSA id 1C9061026E; Fri, 26 Aug 2016 17:54:55 +0200 (CEST) Subject: Re: Linuxisms in s6 To: Warner Losh References: <37d5159b-4957-42f8-2252-fa53d7446bb6@NTLWorld.com> <20160825194820.GI92256@e-new.0x20.net> Cc: FreeBSD Hackers From: Jan Bramkamp Message-ID: <366b32cd-057c-a5c3-d8b4-087db6cb32ff@rlwinm.de> Date: Fri, 26 Aug 2016 17:54:54 +0200 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Aug 2016 15:54:58 -0000 On 26/08/16 16:11, Warner Losh wrote: > On Fri, Aug 26, 2016 at 4:44 AM, Jan Bramkamp wrote: >> On 25/08/16 23:17, Adrian Chadd wrote: >>> >>> On 25 August 2016 at 14:13, Warner Losh wrote: >>>> >>>> On Thu, Aug 25, 2016 at 3:08 PM, Adrian Chadd wrote: >>>>> >>>>> On 25 August 2016 at 12:48, Lars Engels wrote: >>>>>> >>>>>> On Thu, Aug 25, 2016 at 08:46:10AM -0700, Adrian Chadd wrote: >>>>>>> >>>>>>> On 24 August 2016 at 21:53, Jonathan de Boyne Pollard >>>>>>> wrote: >>>>>>>> >>>>>>>> >>>>>>>> http://adrianchadd.blogspot.co.uk/2016/08/freebsd-on-tiny-system-whats-missing.html?showComment=1471236502051#c1305086913155850955 >>>>>>>> , Adrian Chadd: >>>>>>>> >>>>>>>>> We're using s6 at work, and it works out mostly ok. Mostly once you >>>>>>>>> get >>>>>>>>> around the linuxisms, and the lack of sensible time code in it (its >>>>>>>>> calculations for daemon run duration is based on system time, not >>>>>>>>> wall >>>>>>>>> clock, so if your box boots jan 1, 1970 then gets NTP, things are.. >>>>>>>>> hilarious), and some of the arcane bits to get logging working >>>>>>>>> right. >>>>>>>>> >>>>>>>> What are these Linuxisms in s6? s6-linux-utils and s6-linux-init >>>>>>>> have >>>>>>>> Linuxisms, obviously. But what Linuxisms does s6 have? >>>>>>> >>>>>>> >>>>>>> We just had a bunch of fun trying to get it to build right, and the >>>>>>> uptime stuff really threw us. >>>>>>> >>>>>>> It's fine though, I found that s6 may start growing an IPC mechanism >>>>>>> so we could possibly do a launchd/jobd style service later (ie to run >>>>>>> things upon event changes, like ifup, ifdown, ifcreate, ifdestroy, >>>>>>> arbitrary messages, etc) so I may try incorporating it again. :) >>>>>>> >>>>>> >>>>>> Can't this be done with devd? >>>>> >>>>> >>>>> Sure, but I'm looking for something more generic than just devd. Like, >>>>> notifications about events like "default route is up" can be done by >>>>> sniffing the rtsock, but notifications like "ntpdate has updated the >>>>> date, we can now do crypto services" doesn't happen there right now. >>>> >>>> >>>> devd was never intended to be limited to just device events from the >>>> kernel. It has grown beyond that, and could easily grow to cope with >>>> routing events and other notifications. No need to reinvent everything >>>> for that. >>> >>> >>> Right. I don't want to reinvent the wheel if it can be avoided. >> >> >> Afaik devd is limited handling events reported by the kernel on /etc/devctl. >> There is no way to inject events into arbitrary events from userspace into >> devd (no ptrace hacks don't count). > > It would be trivial to add though, especially since the author is easy to > work with :). It already fans out data to multiple listeners. In that case dear author I have two requests: * Read messages from sequential packet sockets in addition to /dev/devctl. * Please offer a flag to keep devd from forking without spamming the log with debugging messages. The first would allow userspace tools to inject messages into devd and the second would allow devd to run under a process supervisor without ugly workarounds. -- Jan Bramkamp