On Mon, 05.01.15 15:02, Zbigniew Jędrzejewski-Szmek (zbys...@in.waw.pl) wrote:

> What we can do instead is to implement daemon-reexec equivalent for
> journald. It would simply reexec itself to a new binary and pass all
> the fds. Some serialization/de-serialization protocol would be necessary
> to pass information about those stdout connections (whatever is given
> in the header currently), but this shouldn't be too hard.

A long-standing item on the TODO list is adding a concept for pushing
fds from services into PID 1, which are then passed back into the
service on the next start. That way journald could push each new
stream fd into systemd, and would get the fds passed back via the
usual socket activation logic. With that in place journald could be
stopped/restarted any time without any special tool, and even
reconnect to service stdout/stderr on abnormal termination too a
certain degree.

machined and logind already implement a reexec scheme similar to this,
by simply maintaining their state in /run. Of course, things are much
simpler for them, since they don't have to serialize any fds, but
extending systemd's service management to have a generic fd store
would allows us to reuse the same restart concept for journald that we
already have for logind and machined.

Maybe I should just sit down and implement this...

Lennart

-- 
Lennart Poettering, Red Hat
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to