Hi, this is my proof of concept patch series splitting /hurd/init into /hurd/startup and /hurd/init.
[PATCH 1/9] Add proc_set_init_task, make runsystem pid 1 Unchanged, just rebased to master. [PATCH 2/9] startup: rename init to startup [PATCH 3/9] Add a minimalist init program The new /hurd/init is tiny, it just spawns a process that brings the system up and reaps children. I just noticed that I failed to include the scripts in the patch series, but I hope the overall idea comes across. [PATCH 4/9] startup: do not pass signals on to the child I'm not sure why this was ever done, if anyone can shed some light on this, I'd like to hear it ;) Fwiw I *think* this might be related to https://savannah.gnu.org/bugs/?20656 [PATCH 5/9] startup: remove unused function run_for_real [PATCH 6/9] startup: be more specific in the shutdown message [PATCH 7/9] startup: fix the declaration of the *_server functions Cleanups. [PATCH 8/9] poc /servers/startup Right now /hurd/startup uses a single port for everything. I believe that this is bad practice. It is hard to change though, since every server interested in startup notifications actually requests /hurd/startups message port and sends notification requests there. This kind of PID based service discovery is unhurdish, so it seems prudent to bind /hurd/startup to /servers/startup instead. I think I figured out why /hurd/startup implements the msg protocol explicitly, it has no signal thread. I actually wonder how the other "bootstrap" servers deal with this. [PATCH 9/9] XXX fix build Fix build. Comments? Justus