Poettering: Rethinking PID 1
Poettering: Rethinking PID 1
Lennart Poettering has put up a lengthy post
describing the "systemd" project, which is creating a new init system.
"Now, if that's all they are waiting for, if we manage to make those sockets available for connection earlier and only actually wait for that instead of the full daemon start-up, then we can speed up the entire boot and start more processes in parallel. So, how can we do that? Actually quite easily in Unix-like systems: we can create the listening sockets before we actually start the daemon, and then just pass the socket during exec() to it. That way, we can create all sockets for all daemons in one step in the init system, and then in a second step run all daemons at once. If a service needs another, and it is not fully started up, that's completely OK: what will happen is that the connection is queued in the providing service and the client will potentially block on that single request. But only that one client will block and only on that one request.
"
The whole thing is an interesting discussion of how system initialization
should work.
Upstart maintainer Scott James Remnant has posted a response to the
announcement. "So it's great to see some Fedora and OpenSuSE guys
working on this too, and bringing some different ideas to the
table!
"
