[OpenWrt-Devel] Any interest in adding runit to OpenWRT?

Martin Tippmann martin.tippmann at gmail.com
Mon Dec 26 09:05:26 EST 2016

On Sun, Dec 25, 2016 at 9:01 PM, Denys Vlasenko
<vda.linux at googlemail.com> wrote:
> I decided to try to do what I can, and put together a draft
> of the proposal how daemontools-like supervision
> should be used by a distro in a way which makes
> developers/packagers life easier - they will not need
> to target a specific distro, all distros will have common API
> for installing and controlling services. It is here:
> https://git.busybox.net/busybox/tree/examples/var_service/README_distro_proposal.txt
> If you have comments about this text, please share them.

Hi, that's great and I would love to see this on OpenWRT/LEDE - maybe
as optional dependency - runit / runsvdir is afaik already in busybox.

Personally I'd would love to have some ability to use procd facilities
with runsvdir/runit. ubus access, uci triggers... but I'm not sure
what would be a good way to implement that - I guess something like a
ubus<->runit shim could do the trick. Maybe there could be some
support for runsvdir in procd - but at the moment these tools can
coexist fine.

Personally what I'm missing in procd and what runit provides is the following:

- runsvdir like funktionality. e.g. on Freifunk firmwares you have to
run do some maintaince or check tasks occasionally and cron is not
really great - beeing able to use something like
http://code.dogmap.org/runwhen/ would be great. runwhen = cron+at but
better ;)

- more flexibility for checks. busybox runit has sv check -
http://smarden.org/runit/sv.8.html - where a script can be triggered
regulary and the exit code decides wether to restart the service or
not - this allows for better checks than just pid exists - sometimes
software get's stuck but appears to be working fine from the
procd/system perspective.

- more flexibility for logging

I don't think it should be the default but it would be great to marry
procd and runit on LEDE. I'm also aware that this is not trivial but
making ubus/procd/netifd and runit talk to each other i.e. restart a
service running with runit on a netifd change would be great!

So TL;DR: procd is fine for init but having runit/runsvdir easily
usable would be a nice feature to have!

..just my 0.02c
greetings from Weimar,
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org

More information about the openwrt-devel mailing list