Mark, and others: In r30313 I've modified daemondo to use kqueue/kevent to watch for the death of the targeted process. This should catch the situation where we're watching for a grandchild process, for which we don't receive child death notices. Let me know if this helps. James Checkin notes: Improve Daemondo to use kqueue/kevent to watch for the death of the target process. Previously Daemondo relied on child death signals, which are given only for direct offspring, and not grandchildren, etc. The use of the kevents now gives notice when the targetted process is not direct offspring. Note: these changes may introduce compatibility issues for Panther, or even Tiger, since I have not yet tested in those environments. They may also introduce compilation problems on platforms for which there is no kqueue support at all. Bug reports are welcome. On Oct 22, 2007, at 7:36 PM, markd@macports.org wrote:
James Berry <jberry@macports.org> writes:
I'll have to look at the Daemondo code again. I'm not sure whether it will get a child death notice for a script that it didn't start directly, and this may be the problem in the case that you describe.
Looking...
Thanks James, I appreciate it. If it can't do that the docs will need updated because I thought it would. But I guess I was supposing that daemondo monitored the process by looking at the pidfile; if it has to passively receive a death notice I can see how that might not work. Would actively monitoring daemons (for non-executable startupitems) be too expensive? It seems like it has most of the logic to do it based on the way it started multiple processes when the pidfile wasn't located correctly. It seems like having it check once in awhile after it is running wouldn't be to much of a stretch. But then you know what they say, the less you know about something, the easier it seems. :)
Mark