Re[2]: s6-rc blocks when oneshot service is still running

From: Laurent Bercot <ska-supervision_at_skarnet.org>
Date: Thu, 14 May 2026 16:58:05 +0000

>So currently it means that if I want to reboot while such oneshot
>service is not yet done – 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
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
Received on Thu May 14 2026 - 18:58:05 CEST

This archive was generated by hypermail 2.4.0 : Thu May 14 2026 - 18:58:50 CEST