Если onShutdown приложения не позволяет завершиться с первого раза, то процесс "зависает" с бесконечным вызовом epoll_wait, или падает с fatal error
Воспроизвести через docker, после копирования репозитория, можно так:
docker build -t phpd .
docker run -ti --rm phpd /bin/bash
/usr/share/phpdaemon/bin/phpd start; /usr/share/phpdaemon/bin/phpd stop; /usr/share/phpdaemon/bin/phpd log
Ошибка, возникающая при остановке:
Notice: Undefined property: PHPDaemon\Thread\Worker::$loop in /usr/share/phpdaemon/PHPDaemon/Thread/Worker.php:587
#1 PHPDaemon\Core\Daemon::errorHandler() called at [/usr/share/phpdaemon/PHPDaemon/Thread/Worker.php:587]
#2 PHPDaemon\Thread\Worker->PHPDaemon\Thread\{closure}() called at [/usr/share/phpdaemon/PHPDaemon/Core/Timer.php:187]
#3 PHPDaemon\Core\Timer->eventCall()
#4 EventBase->dispatch() called at [/usr/share/phpdaemon/PHPDaemon/Core/EventLoop.php:149]
#5 PHPDaemon\Core\EventLoop->run() called at [/usr/share/phpdaemon/PHPDaemon/Thread/Worker.php:591]
#6 PHPDaemon\Thread\Worker->shutdown() called at [/usr/share/phpdaemon/PHPDaemon/Thread/Worker.php:216]
#7 PHPDaemon\Thread\Worker->run() called at [/usr/share/phpdaemon/PHPDaemon/Thread/Generic.php:146]
#8 PHPDaemon\Thread\Generic->__invoke() called at [/usr/share/phpdaemon/bin/phpd:71]
Fatal error примерно такой:
W#28913 crashed by error 'Uncaught Error: Call to a member function stop() on null in /usr/share/phpdaemon/PHPDaemon/Thread/Worker.php:587
Stack trace:
#0 /usr/share/phpdaemon/PHPDaemon/Core/Timer.php(187): PHPDaemon\Thread\Worker->PHPDaemon\Thread\{closure}(Object(PHPDaemon\Core\Timer))
#1 [internal function]: PHPDaemon\Core\Timer->eventCall(NULL)
#2 /usr/share/phpdaemon/PHPDaemon/Core/EventLoop.php(149): EventBase->dispatch()
#3 /usr/share/phpdaemon/PHPDaemon/Thread/Worker.php(591): PHPDaemon\Core\EventLoop->run()
#4 /usr/share/phpdaemon/PHPDaemon/Thread/Worker.php(216): PHPDaemon\Thread\Worker->shutdown()
#5 /usr/share/phpdaemon/PHPDaemon/Thread/Generic.php(146): PHPDaemon\Thread\Worker->run()
#6 /usr/share/phpdaemon/bin/phpd(71): PHPDaemon\Thread\Generic->__invoke()
#7 {main} thrown' at /usr/share/phpdaemon/PHPDaemon/Thread/Worker.php:587