Re: s6: something like runit's ./check script

From: Jan Bramkamp <crest_at_rlwinm.de>
Date: Tue, 8 Sep 2015 10:49:58 +0200

On 03/09/15 20:23, Laurent Bercot wrote:
> On 03/09/2015 18:25, Buck Evan wrote:
>> An s6-checkhelper wrapper that implements exactly the above would make me
>> happy enough.
>
> Yes, that's envisionable. I'll think about it.

I pondered over the problem and came up with the following conclusions:
- Polling is ugly, but useful enough to implement anyways.
- Polling has no place in s6-supervise.
- It's infeasible to implement the s6 readiness protocol in every service.
- The runit ./check scripts polled by sv (the runit equivalent to
s6-svc) scale badly for dependency trees with a high fan-out.

Bitching about the limitations of open source software is easy so here
is my proposed solution:
- Have one polling daemon.
- A wrapper registers polled services with the polling daemon.
- The wrapper passes the service directory fd (its working directory)
and the notification fd to the polling service over a unix domain socket
(maybe with a polling frequency and scaling factor).
- The polling daemon invokes ./check until it returns an exit
successfully or the polled service is brought down.

I'm willing to implement this but I have no experience with the skalibs
API and would probably make a mess of it which integrates poorly with
the source code of the s6 suite. I would also require some testers for
platforms other than FreeBSD.

This solution would offer polling for those accepting the trade-offs and
keep the rest of the s6 suite clean.
Received on Tue Sep 08 2015 - 08:49:58 UTC

This archive was generated by hypermail 2.3.0 : Sun May 09 2021 - 19:44:19 UTC