Re[2]: s6-rc blocks when oneshot service is still running
"Laurent Bercot" <[email protected]> Thu, 14 May 2026 16:58:05 +0000
| Newsgroups | gmane.comp.sysutils.supervision.general |
|---|---|
| Message-ID | <[email protected]> |
>So currently it means that if I want to reboot while such oneshot >service is not yet done =E2=80=93 the reboot procedure will be delayed or= I will have to kill the offending process in the reboot script. That's ok,= but >is somewhat inconvenient. That's right. In practice, it's rare that you'd want to reboot while a concurrent state change is running. Typically, s6-rc is only running at boot time, until the machine is in its cruising state; I think it is acceptable to at least wait until the boot has finished before rebooting the machine. In case of emergency, pkill s6-rc before rebooting. It's ugly, but it will work if you really need it. >It is something to think about. Setup is kinda complex: I have a longrun >"A" that does "s6-rc start foobar" Is A a service run by s6-rc, in the same service database as foobar? If it is, I would strongly advise you not to do that. Do not invoke s6-rc commands from within a service that is managed by s6-rc: that might deadlock or fail. If A is run independently from s6-rc, even if it is a supervised=20 service under the same scan directory (e.g. you launch it as an early service via s6-linux-init) then there is no problem. -- Laurent