SIGCHILD не обнаруживает сигнал, когда умирает детский процесс

Я пытаюсь создать процесс демона, который обрабатывает несколько дочерних потоков. Но дочерний поток, похоже, не посылает сигнал родительскому устройству для вызова функции. я попытался вывести его из класса и сделать его стандартной функцией, но это тоже не помогает.

class Daemon { public function __construct() { $set = pcntl_signal(SIGCHLD, array($this, 'childSignalHandler')); $pid = pcntl_fork(); if ($pid == -1) { echo 'could not fork'; } elseif ($pid) { // parent sleep(20); // this would keep running and spawn other children from time to time } else { // child sleep(5); // should call childSignalHandler() in parent } } public function childSignalHandler($pid) { echo 'child is dead'; } } new Daemon();