Even when process=1 is started, it still leaves a window when the
signal handler setup has not been completed.
Yes, but you can still use kill(pid, 0) to check whether init is
ready to receive signals: doublefork a zombie and repeatedly kill it
with signal 0. When you get -1 ESRCH, it means init has reapt the
zombie, so it's in its reaping loop, and at that point you know it
has installed its signal handlers.
That's arguably uglier than using abstract sockets, but it can
be done without modifying the init code at all.
busybox mailing list