Hello world and couple of questions

From: Martin \ <et.code_at_ethome.sk>
Date: Mon, 7 Sep 2015 16:36:19 +0200

Hi,

new s6 user here.

I started using s6 to do FreeBSD jail services management. It seems this helped
me to get rid of some socket timeout errors (?) in my jails setups.

In my deployment I am using "jail as vm" approach.

This works pretty well in my testing vm and on testing server.

Being very happy with the preliminary system I decided I want to replace init
on freebsd similar way runit does it.

However runit is fullblown init in stage 1 + and zombie reaper in stage 2,
while s6 uses execline script for stage 1.

After some smashing things together, I took original init.c from base FreeBSD
src tree and removed parts until it's just rudimentary initialization
function that execves into execlineb boot script.

My environment is ZFS only so, I just did really dirty hacks to have ZFS fses,
and some other late fses mounted and some other things.

This seems to work reliably both in vm and on real hw.


One problem I am having though, is "uncaught" logger dance, as unlike on linux,
stage 1 dies with "broken pipe" signal when it tries to write to logger fifo
(as it has no reader yet).
For now I got around that by redirecting stderr to logger only right before
supervisor boots up, however that means initial messages appear only on
console.
Is there some way to buffer those from fifo until last resort logger
starts (using tools in s6 packages)?
Or can I somehow spawn logger before supervisor spins up and have it "descent"
later into supervision tree?


Second problem is when I compile s6 and portable utils package with:
./configure --enable-static-libc
all s6 tools are correctly identified by 'file' command as fully static ELFs,
however s6-svstat for example fails to work correctly.
It always reports given service as down.
Without static libc it all works as intended.
Is this a bug?

eto
Received on Mon Sep 07 2015 - 14:36:19 UTC

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