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.
In my case (https://github.com/shaneharter/PHP-Daemon) 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.
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.
In my case (https://github.com/shaneharter/PHP-Daemon) 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.
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.