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.
