you need to be able to convey more information to pid 1
than a few signals can.
such as ?
what more information than the runlevel (0 or 6, maybe 1 to go
into single user) does SysV init need to start the system shutdown ?
The time of the shutdown. The "shutdown" command isn't necessarily
instantaneous, it can register a shutdown for a given time.
You could deal with that by creating another process, which is
equivalent to running a daemon outside pid 1 (and that's exactly
what s6-linux-init-1.0.0.0 does), but if you want to handle it all
in pid 1, you need time management in it and that can't be done
via signals only.
the Void Linux team just made a shell script out of it that just brings
down the runit services and runsvdir itself.
Yeah, that's not difficult. What is difficult is implementing the
legacy features of other inits.
--
Laurent