Laurent Bercot writes:
> It is impossible to portably wait for the appearance of a file.
> And testing the existence of the file first, before creating the
> subdirs, wouldn't help, because it would be a TOCTOU.

s6-supervise aborts on startup if foo/supervise/control is already open, but 
perpetually retries if foo/run doesn't exist. Both of those problems indicate 
the user is doing something wrong. Wouldn't it make more sense for both 
problems to result in the same behavior (either retry or abort, preferably the 
latter)?

https://cr.yp.to/daemontools/supervise.html indicates the original verison of 
supervise aborts in both cases.

I also don't understand the reason for svscan and supervise being different. 
Supervise's job is to watch one daemon. Svscan's job is to watch a collection 
of supervise procs. Why not omit supervise, and have svscan directly watch the 
daemons? Surely this is a common question.

I suppose supervise on its own might be convenient during testing, to have a 
lone supervise proc watching a daemon. But this could be done just as well with 
a combined svscan-supervise, with the daemon being the only entry in the 
collection of watched procs.

I understand svscan must be as simple as possible, for reliability, because it 
must not die. But I don't see how combining it with supervise would really make 
it more complex. It already has supervise's functionality built in (watch a 
target proc, and restart it when it dies).

Reply via email to