shutdown_nice during boot

Peter Jeremy peterjeremy at
Tue May 12 20:01:25 UTC 2009

On 2009-May-07 11:03:44 +0300, Andriy Gapon <avg at> wrote:
>on 07/05/2009 11:00 peterjeremy at said the following:
>> On 2009-May-06 19:24:03 +0300, Andriy Gapon <avg at> wrote:
>>> It's possible to re-enable SIGINT right after init is forked, but
>>> this way it will be delivered to init before it installs signal
>>> handlers and thus init would simply terminate resulting in "Going
>>> nowhere without my init!" panic.
>> The best option would seem to be for init(8) to call sigprocmask(2)
>> immediately it starts up and block all signals.
>But a signal still can be delivered after init is exec-ed and before
>sigprocmask(2) is called or not?

True - there is still a window there where signal dispositiona are
inappropriate.  Thinking about it some more, maybe the solution is to
change the test in shutdown_nice() - rather than testing for the
existence of initproc, it could test a sysctl variable that init
sets once it has its signal handlers in place.  There's already a
kern.shutdown node so maybe "kern.shutdown.via_init".  (This adds
the option for other subsystems to clear it if desired - maybe as
part of a watchdog function).

Maybe shutdown_nice should also initiate a 30-60 second timer that
invokes boot() whether or not init responds.

Peter Jeremy
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url :

More information about the freebsd-arch mailing list