supervision - discussion about system services, daemon supervision, init, runlevel management, and tools such as s6 and runit
 help / color / mirror / Atom feed
From: "Laurent Bercot" <ska-supervision@skarnet.org>
To: supervision@list.skarnet.org
Subject: Re: Update early logger logging path after remounting root as rw
Date: Sat, 05 Sep 2020 19:45:57 +0000	[thread overview]
Message-ID: <emed9447d8-1c17-4597-a27d-d1dae58c6de3@elzian> (raw)
In-Reply-To: <CAFDeY1aNKOzws3yC+QyPhckst4hOVPN7oB-6htuZhNFXc=voVA@mail.gmail.com>


>I'm configuring my linux to use s6-rc. It works fairly well so far. One
>thing I want to improve though, is that the early logger logs to
>/run/uncaught-logs. It's nice to have a log file during early boot and it
>helped my debugging easier. But it would be cool to able to change the
>location to a permanent location like /var/log after the root has been
>remounted as read-write.

  Well the catch-all logger is supposed to be just that: a catch-all
logger. That means that ideally, every service should have its own
dedicated logger, typically writing to /var/log/something, and the
catch-all logger is only used for exceptional stuff such as error
messages from the supervision tree, so it doesn't matter that its logs
are stored under /run.


>Is it possible to update the log path of early/catch-all s6-log process to
>a new location, and perhaps copying the early logs there as well? Or if
>not, is it possible to spawn a new s6-log process that acts as a catch-all
>logger?

  It's difficult to do. It's possible in theory: you could have a oneshot
that modifies /run/service/s6-svscan-log/run, replacing the
"/run/uncaught-logs" string with the new location you want, then
copies /run/uncaught-logs into that new location and restarting the
s6-svscan-log service. But in practice you would add complexity to the
log infrastructure, and you need to pay close attention to all the
failure cases because you don't want to have a broken catch-all logger
for any reason at all. I don't think the benefits are worth the
additional effort; but feel free to disagree and write such a "log
mover" service.


>BTW, is there a command to restart service managed by s6-rc? I've been
>using "s6-rc -v2 -d change sv && s6-rc -v2 -u change sv" but I feel there
>might be something simpler.

  For oneshots, no - but you rarely want to "restart" oneshots.
  For longruns, unless you want to also restart everything that depends
on the service, you can just bypass the s6-rc layer and directly tell s6
to restart your process: s6-svc -r /run/service/$sv

  Hope this helps,

--
  Laurent


  reply	other threads:[~2020-09-05 19:46 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-05 15:46 Rio Liu
2020-09-05 19:45 ` Laurent Bercot [this message]
2020-09-05 20:26   ` Rio Liu
2020-09-05 20:50     ` Samuel Holland
2020-09-06 10:36       ` yianiris
2020-09-06 15:53         ` Rio Liu
2020-09-05 20:43 ` Casper Ti. Vector

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=emed9447d8-1c17-4597-a27d-d1dae58c6de3@elzian \
    --to=ska-supervision@skarnet.org \
    --cc=supervision@list.skarnet.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).