Hi, On 28.08.2016 22:11, Bart Schouten wrote: > That "very serious race condition" is nothing more than one daemon > having to wait for the other while starting up. THAT'S IT. Oh and > knowing when something has died so you can restart it or something. That is also something the init system can not really fix, just paper over. Any daemon that is dependent on another to work needs to be able to handle the case where the other process is restarted, or fails for some reason, and provide error recovery in this case. Declaring a dependency in a systemd unit file is no better in that regard than simply ordering daemons by priority, and ideally the daemon needs to be resilient enough to work even if the other daemon is started with no synchronisation or if timed jobs are simply not run. I'd also postulate that these error cases are not properly tested in most daemons we have. Every service can always fail due to transient errors, and this needs to be communicated up the stack. There is a reason why SMTP daemons will first write a mail to disk, flush the caches, and only then acknowledge receipt. Simon
Attachment:
signature.asc
Description: OpenPGP digital signature