User: Password:
|
|
Subscribe / Log in / New account

A call for votes in the Debian init system discussion

A call for votes in the Debian init system discussion

Posted Jan 29, 2014 0:40 UTC (Wed) by josh (subscriber, #17465)
In reply to: A call for votes in the Debian init system discussion by tbird20d
Parent article: A call for votes in the Debian init system discussion

> I don't know the technical details, but I'm sure the socket activation you refer to will include extra communication with the systemd program (and hence extra task switches and syscalls), beyond a simple fork-and-exec.

No, it doesn't. systemd already has to fork-and-exec the service; systemd just sets up the socket first, and lets the process inherit that socket. In particular, socket activation means you can launch services A, B, and C in parallel, even though B and C depend on A, because systemd has already created A's socket before launching A, B, and C.


(Log in to post comments)

A call for votes in the Debian init system discussion

Posted Jan 29, 2014 15:55 UTC (Wed) by nybble41 (subscriber, #55106) [Link]

> In particular, socket activation means you can launch services A, B, and C in parallel, even though B and C depend on A, because systemd has already created A's socket before launching A, B, and C.

Even better, you can launch A, B, and C in parallel even if A depends on B, which depends on C, which depends on A. Circular dependencies between services are not a problem. You just have to avoid creating deadlocks where there are circular dependencies in the *responses*. Try doing that without socket activation! There is no way to start such services sequentially; all the sockets have to exist before any of the services can start.


Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds