supervision - discussion about system services, daemon supervision, init, runlevel management, and tools such as s6 and runit
 help / color / mirror / Atom feed
* Disconnect between s6-svscan and s6-rc
@ 2022-10-24 23:34 Ihor Antonov
  2022-10-25  9:29 ` Laurent Bercot
  0 siblings, 1 reply; 2+ messages in thread
From: Ihor Antonov @ 2022-10-24 23:34 UTC (permalink / raw)
  To: supervision

Hi Skarnet Supervision Gang :)

I want to run a thing buy you, to udnerstand whether I am not
understanding something or misusing something or is there actually a
problem. Here it goes:

When I do

    s6-rc -u change myservice

the command hangs, waiting for the service to start, keeps the ftfrig
pipe open...

The service does not start, because there is an error in run script.
This can't be caught by compilation phase, in my case there was a
missing env var that prevented a service to start, but I imagine there
can be all sorts of issues with run scripts.

The user of s6-rc gets no error message, and waits forever.
The error message is captured by s6-svscan (or a corresponding logger
for that service) and is either saved into a log file, or printed to a
tty on which svscan is running. 

The user is almost never on the same tty with svscan. The user never
gets an error message from the service, unless they explicitly know
where to look.

It would be nice if a user can get a temporary view into the service's
stdout for the short duration of s6-rc execution? Such that when s6-rc
never exits waiting we can see what the error message that service
prints? 


Thanks

Ihor





^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Disconnect between s6-svscan and s6-rc
  2022-10-24 23:34 Disconnect between s6-svscan and s6-rc Ihor Antonov
@ 2022-10-25  9:29 ` Laurent Bercot
  0 siblings, 0 replies; 2+ messages in thread
From: Laurent Bercot @ 2022-10-25  9:29 UTC (permalink / raw)
  To: supervision


>The user of s6-rc gets no error message, and waits forever.
>The error message is captured by s6-svscan (or a corresponding logger
>for that service) and is either saved into a log file, or printed to a
>tty on which svscan is running.
>The user is almost never on the same tty with svscan. The user never
>gets an error message from the service, unless they explicitly know
>where to look.

  There's no "tty on which svscan is running". s6-svscan should not
run in a terminal. You *can* do it, but it's fragile: it means your
whole supervision tree is vulnerable to a ^C in a terminal.
  The output of s6-svscan, and the supervision tree by default, should
go to a catch-all logger and potentially to the system console.


>It would be nice if a user can get a temporary view into the service's
>stdout for the short duration of s6-rc execution? Such that when s6-rc
>never exits waiting we can see what the error message that service
>prints?

  For oneshots, it is the case: the output of oneshots will go to the
output of s6-rc.
  Unfortunately, for longruns, that's pretty difficult. One of the
points of supervised longruns is that they're always started with the
exact same environment, and that includes their descriptors. That means
they're outputting to the same place whether or not s6-rc is running.
In order to temporarily display error messages from longruns, s6-rc
would have to find out where the catch-all logger is, and display it
to the user while it's running. That's impossible while s6-rc is
independent from s6 policy.

  Unified policy for better interaction between tools in the toolset is
one of the goals for s6-rc v1, which is still a long ways away.

  For now, my advice would be to always use a timeout when running s6-rc
(you will have an error message if it times out), and/or to have the
supervision tree's output on the system console, and have the reflex to
check the console when you feel that s6-rc is taking more time than it
should. Sorry I don't have any better immediate solution.

--
  Laurent


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-10-25  9:29 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-24 23:34 Disconnect between s6-svscan and s6-rc Ihor Antonov
2022-10-25  9:29 ` Laurent Bercot

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).