From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ie0-x22b.google.com (mail-ie0-x22b.google.com [IPv6:2607:f8b0:4001:c03::22b]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by huchra.bufferbloat.net (Postfix) with ESMTPS id 795B3208A7C for ; Sat, 25 Jan 2014 08:14:22 -0800 (PST) Received: by mail-ie0-f171.google.com with SMTP id as1so4185419iec.30 for ; Sat, 25 Jan 2014 08:14:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=2EdKs12WLIcBCZHnDBJimozEjRUy/sAk90GlBYD6NLo=; b=dnj9aWC5CxGCwk6ori4HBlEDE4/sAT6yMgbdjL141k10GO3LCK4ZjzKCsz9k5y6por H9bvj23yIeNcwj7pGpWYVo5+Lqwn1pX7gb2963MikkCATEv0MP6XIODebKDgMLApXkB2 If358O3JYGme5GIsoCqiJh2aVB7kNIQTK6eHTc3M1yS1zhO7i6JnrQ+oCM37KmvOsAuv cDxw2aH/aotu2aMDcXjet0G+4toyAWqzr5Am4sMsKcUil36cyiBr5cJEztFVQUHsi01b RQ5M9t51yYnV7Wkd3H1C/MLzRrR1tjfVr6ppbPht5Pk3LJkWsJ5z9odl079SqVs1hvH4 Q/hw== MIME-Version: 1.0 X-Received: by 10.50.25.41 with SMTP id z9mr9925729igf.10.1390666461582; Sat, 25 Jan 2014 08:14:21 -0800 (PST) Received: by 10.64.145.67 with HTTP; Sat, 25 Jan 2014 08:14:21 -0800 (PST) Date: Sat, 25 Jan 2014 11:14:21 -0500 Message-ID: From: Dave Taht To: David Personette Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: "cerowrt-devel@lists.bufferbloat.net" Subject: Re: [Cerowrt-devel] procd support for core daemons? X-BeenThere: cerowrt-devel@lists.bufferbloat.net X-Mailman-Version: 2.1.13 Precedence: list List-Id: Development issues regarding the cerowrt test router project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 25 Jan 2014 16:14:22 -0000 I moved pimd, ahcpd, polipo, avahi-daemon, rngd, and the cerowrt and luci configuration web servers into being managed by procd. (The lighttpd/cerowrt fix actually fixed a longstanding bug in restarting those competing webservers.) Left to convert are babeld (which was the only one of the above I really cared about, sadly. I am bogged down on understanding the uci_validate routine). The trival changes required to those init scripts (not warranted to be correct at this point) are at: http://snapon.lab.bufferbloat.net/~cero2/procd/ could use eyeballs on all that(?). The WIP on converting babel is there also. (I found it necessary to patch babel to run without a pid file, not that I'm right...) I didn't touch minissd or upnp 'cause I don't know enough about them to be able to test. (and I understand that they are busted for some people, and that I/we need to fix that first. and I just nabbed a playstation to observe) I don't plan to convert xinetd. Didn't get around to converting snmpd. That's it for "core daemons". (a fingering change is generally you want to do a /etc/init.d/whatever reload rather than restart) of the other commonly installed ones, there are samba, openwrt, strongswan and ipsec, that I know of. All these are packages that haven't been installed or tested for a while (by me, anyway)... I am travelling back to california tomorrow and don't plan an actual build until next weekend. On Wed, Jan 22, 2014 at 1:45 PM, David Personette wrote= : > It sounds like a good project, I'll look into it this weekend. I left you the hard bits. :( - nearly all the above are checked into ceropackages-3.3 and cerofiles-next. > > -- > David P. > > > > On Wed, Jan 22, 2014 at 1:08 AM, Dave Taht wrote: >> >> this is not a list of "must haves" but a "would likes". >> >> Earlier this year, openwrt started working on a replacement for the firs= t >> process in the system, the "init" process. Most distros have migrated >> away from init towards things like systemd (which provide kitchen sink >> services) >> >> Openwrt went in another direction for something simpler and lighter >> weight, >> called "procd". >> >> http://wiki.openwrt.org/doc/techref/procd >> >> Documentation on it is pretty sparse, the best way to learn how to use >> it is to grep USE_PROCD /etc/init.d/* and read those files. >> >> A huge disadvantage >> of old init system is once a daemon dies, it stays dead until a human >> restarts it. If that daemon is critical you are hosed. >> >> The principal advantages of procd are that it can restart a process >> after it crashes, and that it integrates with other messages sent >> along the ubus so that multiple restarts can be suppressed as >> various network things get configured. >> >> There are a ton of daemons in cero that while pretty reliable, can be ma= de >> more so, if wrapped by procd. Converting an existing init script in >> /etc/init.d >> is pretty easy if you look at the code already done there, and how >> dependencies >> work in /etc/config/ucitrack . >> >> And: that ton of daemons in cero has not been converted to procd yet. >> Doing a couple of these would be a good project(s) for someone(s) as >> the conversion can be done directly on the router, and tested, no need >> for a toolchain. Getting grip on how uci works >> is very helpful for scripting tests and the like, and getting a working >> package >> is only a bit more work. (and the work can quickly go upstream to openwr= t) >> >> the core non-procd daemons in cero currently are >> >> dbus: I don't even know if this needed anymore (?) >> >> babeld: of all these, when babeld crashes it's most bad, the router >> drops off the mesh. Right now the yurtlab is down... However converting >> it to procd looks kind of involved, so I pinged the babel list if they >> were interested >> >> xinetd: if xinetd crashes it's very bad, things like ssh stop working. >> However >> in practice xinetd has been very mature code and has never crashed. I ki= nd >> of like it existing independently of procd. That said, I'd like closer >> ties >> with things like dhcpv6-pd so that ipv6 permissions get added and delete= d. >> >> someday procd will gain xinetd-like functionality. >> >> lighthttpd: cero runs two instances of the lighttpd web server. One is >> outward >> facing, drops root permissions, and the other is for configuration, >> and keeps root. >> >> If it were up to me, these would be disabled after installation, and the >> only >> path into the router would be by ssh secure key. Since it isn't, it woul= d >> be nice to keep them running no matter what. Getting two separate >> instances >> started would be a matter of some uci syntax in /etc/config/lighttpd, bu= t >> doing the full lighthttpd.conf file format in uci an exercise in pain. >> >> I'd like it if there was some way to to have it start from xinetd (and d= ie >> when >> unneeded). would like to run one daemon with non-root privs talking to >> fcgi >> with root privs, too. can't have everything. >> >> polipo: if nobody but me is using polipo, we can disable it by default, >> but it >> too would be nice to be more network aware and use procd. >> >> ahcpd: this has been a pita generally. I don't know what to do about >> it. Of all these, this needs the most love to work right in our >> dynamic ipv6 universe. >> >> rngd: the random number daemon. It used to be that if this crashed, >> ssh connections and wpa wifi came to a near halt. It's unknown if it's >> still needed after all the random number >> fixes that went into the kernel... >> >> I just moved rngd to procd. (I'd like it if folk running wpa and heavy >> crypto stopped rngd for a day to see what happened) >> >> pimd - this too, I just moved to procd. not that we think it's working. >> >> snmpd: looks easy >> >> minissdpd: looks easy but we have other problems with it >> miniupnpd: looks easy >> avahi: looks easy >> >> There are several other optional daemons like ipsec, samba, & openvpn >> that could use >> a procd treatment. >> >> -- >> Dave T=E4ht >> >> Fixing bufferbloat with cerowrt: >> http://www.teklibre.com/cerowrt/subscribe.html >> _______________________________________________ >> Cerowrt-devel mailing list >> Cerowrt-devel@lists.bufferbloat.net >> https://lists.bufferbloat.net/listinfo/cerowrt-devel > > --=20 Dave T=E4ht Fixing bufferbloat with cerowrt: http://www.teklibre.com/cerowrt/subscribe.= html