The logging exception when daemonized can be avoided by simply exiting in the parent processes when daemonizing.  According to http://www.faqs.org/faqs/unix-faq/programmer/faq/ Section 1.7, Step 6 - it's the child process that should close the std (in,out,err) descriptors.  Thankfully, os.dup2(fd,fd2) will close fd2 if needed.
The logging exception when daemonized can be avoided by simply exiting in the parent processes when daemonizing.  According to http://www.faqs.org/faqs/unix-faq/programmer/faq/ Section 1.7, Step 6 - it's the child process that should close the std (in,out,err) descriptors.  Thankfully, os.dup2(fd,fd2) will close fd2 if needed.

--HG--
extra : convert_revision : svn%3Ae1d34091-3ce9-0310-8e96-997e60db3bd5/trunk%401746

cherrypy/magicbus