Having written a specialized daemon library for PHP, my take is that this seems clean, but unless you need special functionality, I really prefer a while(true) and supervisord.<p>In my case (<a href="https://github.com/shaneharter/PHP-Daemon" rel="nofollow">https://github.com/shaneharter/PHP-Daemon</a>) a project needed a way to run code on a timer every second. For more basic cases supervisord or similar is the way I'd go.<p>And no, I wouldn't suggest that anybody write daemons in PHP. It's one of those things that was the best of several bad options. Python is a bit better, but if I had my choice it would be in a language that had real threading.
Daemonization is really something that ought to be done outside the process being daemonized, a la supervisord or (if you prefer Python) something like my own project, finitd[0]. Unless you have something you must do as root before dropping privileges, leave daemonization to a separate, purpose-built program like these. It's the UNIX way.<p>[0] <a href="https://github.com/jemfinch/finitd" rel="nofollow">https://github.com/jemfinch/finitd</a>
Interesting, potentially useful.<p>It seems a little sad to me that Twisted is so unappreciated; it solved many current problems a long time ago, including very good deamonizing.