Bug #70708 [Com]: Call to undefined function pcntl_sigwaitinfo

From: Date: Sat, 18 Jun 2016 02:28:38 +0000
Subject: Bug #70708 [Com]: Call to undefined function pcntl_sigwaitinfo
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-201706@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=70708&edit=1 ID: 70708 Comment by: dave at mudsite dot com Reported by: damien dot lasserre at gmail dot com Summary: Call to undefined function pcntl_sigwaitinfo Status: Open Type: Bug Package: PCNTL related Operating System: OS X 10.10.5 PHP Version: 7.0Git-2015-10-13 (Git) Block user comment: N Private report: N New Comment: Correct. Darwin appears not to implement sigwaitinfo() or sigtimedwait(): http://opensource.apple.com//source/xnu/xnu-1456.1.26/bsd/sys/signal.h However, on my macos machine I can accomplish what you're trying to do, possibly by doing this: <?php declare(ticks=1); class Foo { function signaltest() { pcntl_signal(SIGUSR1, array($this, 'restart')); } function restart($signo) { print_r("Restarting From $signo"); } } $f = new Foo(); $f->signalTest(); posix_kill(posix_getpid(), (int)SIGUSR1); sleep(1); Previous Comments: ------------------------------------------------------------------------ [2015-10-13 14:06:15] damien dot lasserre at gmail dot com I think the methode doesn't work on MAC :( but after configuration with support pcntl if i check the file main/php_config.h : /* Define to 1 if you have the `sigtimedwait' function. */ /* #undef HAVE_SIGTIMEDWAIT */ /* Define to 1 if you have the `sigwaitinfo' function. */ /* #undef HAVE_SIGWAITINFO */ :( ------------------------------------------------------------------------ [2015-10-13 13:10:42] damien dot lasserre at gmail dot com Description: ------------ --- From manual page: http://www.php.net/function.pcntl-sigwaitinfo --- Hi, When i try to use pcntl_sigwaitinfo function, an error occur : Uncaught Error: Call to undefined function pcntl_sigwaitinfo, but pcntl extension was installed and activated... <?php //... while($running) { /** @var int $pid */ $pid = pcntl_waitpid(-1, $status, WNOHANG); if($pid) { $sig = pcntl_wstopsig($status); if($sig === SIGUSR1) { $this->restartService($pid); } } /** Restart all services if SIGHUP send as SMP process */ pcntl_sigwaitinfo(array(SIGUSR1), $info); if((int)$info['signo'] === SIGUSR1) { $this->restart(); } } //... ?> Below: (php -i | grep pcntl) pcntl pcntl support => enabled OLDPWD => /tmp/php-src/ext/pcntl $_SERVER['OLDPWD'] => /tmp/php-src/ext/pcntl Regards. ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=70708&edit=1

« previous php.bugs (#201706) next »