remove the --forks=1 constraint for socket-activated kresd
When implementing socket activation, we put in a constraing that --forks
had to be set to 1.
As kresd(8)
says:
When socket-activated and supervised by systemd or the equiva‐
lent, kresd defaults to --forks=1, and must not be set to any
other value. If you want multiple concurrent processes super‐
vised in this way, they should be supervised independently.
It's no longer clear to me that this constraint should be required. We should look into what can be done to allow a socket-activated service to have --forks=N
where N > 1
.
Main questions, as i see it:
- who does the passed-in control socket talk to? presumably the "leader", but does that mean that the children need to close their copy of the control socket?
- should the child processes expose any direct control sockets of their own? if so, should those also be socket-activated?