El lun, 9 feb 2026 a las 1:04, Laurent Bercot escribió:
>
> The prescriptions represent the exact state of the machine after a
> complete boot. The configuration would work, but it would not match
> the user's expectation that B should be down, so it is marked as
> invalid to make the user realize that B will be up.
Oh, so usable *does* actually imply down state after boot.
> You could argue that there should be a separate flag in the service
> state saying "not explicitly wanted, just currently up because of
> dependencies", and that might be a good thing, but the current s6-rc
> core does not support that.
This is what I thought usable meant after reading the documentation.
"A prescription is the target state for every service in a set. [...]
The list of rxs the service can be in is the following:
[...]
* disabled: these services will appear in the compiled set database,
and will be startable by s6-rc if the database is installed. However,
they will not be included in the default bundle, i.e. they will not be
automatically started at boot time. Other names for disabled are:
inactive, unmasked, latent, usable. (Tooling will likely report these
services as latent or usable.)"
*
https://www.skarnet.org/software/s6-rc/repodefs.html
That is, I interpreted usable as only meaning "not necessarily up
after a complete boot".
> >...which makes me ask: isn't GOLB_HIDEESSENTIALS set in s6-rc-0.6.0.0
> >for the wrong option (-D instead of -d), or am I misunderstanding the
> >code?
>
> The flag has two different uses. It is called "hide essentials"
> because it will hide them for "s6-rc list", but it is also used in
> "s6-rc stop" to mean "stop essentials anyway".
I just got confused by this condition in function examine():
if (!h && !(wgolb & GOLB_HIDEESSENTIALS) && db->services[i].flags &
S6RC_DB_FLAG_ESSENTIAL)
{
if (verbosity)
strerr_warnw3x("service ", name, " is marked as essential, not
stopping it") ;
}
else /* actually perform the state transition... I think */
*
https://git.skarnet.org/cgi-bin/cgit.cgi/s6-rc/tree/src/s6-rc/s6-rc.c?h=v0.6.0.0#n296
After reading it again, I realize that I originally got that wrong and
it really is "if it is a transition to the down state, this service is
marked as essential, and GOLB_HIDEESSENTIALS is *not* set —it is for
-D—, *don't* stop this service" 😅
Thanks,
G.
Received on Wed Feb 11 2026 - 03:39:14 CET