1--TEST-- 2pcntl_signal() 3--SKIPIF-- 4<?php if (!extension_loaded("pcntl")) print "skip"; ?> 5<?php if (!extension_loaded("posix")) die("skip posix extension not available"); ?> 6--FILE-- 7<?php 8pcntl_signal(SIGTERM, function($signo){ 9 echo "signal dispatched\n"; 10}); 11posix_kill(posix_getpid(), SIGTERM); 12pcntl_signal_dispatch(); 13 14pcntl_signal(SIGUSR1, function($signo, $siginfo){ 15 printf("got signal from %s\n", $siginfo['pid'] ?? 'nobody'); 16}); 17posix_kill(posix_getpid(), SIGUSR1); 18pcntl_signal_dispatch(); 19 20var_dump(pcntl_signal()); 21var_dump(pcntl_signal(SIGALRM, SIG_IGN)); 22var_dump(pcntl_signal(-1, -1)); 23var_dump(pcntl_signal(-1, function(){})); 24var_dump(pcntl_signal(SIGALRM, "not callable")); 25 26 27/* test freeing queue in RSHUTDOWN */ 28posix_kill(posix_getpid(), SIGTERM); 29echo "ok\n"; 30?> 31--EXPECTF-- 32signal dispatched 33got signal from %r\d+|nobody%r 34 35Warning: pcntl_signal() expects at least 2 parameters, 0 given in %s 36NULL 37bool(true) 38 39Warning: pcntl_signal(): Invalid signal %s 40bool(false) 41 42Warning: pcntl_signal(): Invalid signal %s 43bool(false) 44 45Warning: pcntl_signal(): not callable is not a callable function name error in %s 46bool(false) 47ok 48