1
我使用pcntl_alarm()
的東西考慮,所以對其進行測試我跑,你可以隨處找到的示例的變化,當你谷歌pcntl_alarm:php pcntl_alarm - pcntl_signal處理程序不會觸發?
function signal_handler()
{
echo "Caught SIGALRM\n";
exit;
}
pcntl_signal('SIGALRM', 'signal_handler');
pcntl_alarm(3);
for($i = 1; $i <= 6; $i++) {
echo "$i ";
sleep(1);
}
echo "Normal exit\n";
預期輸出:
1 2 3 Caught SIGALRM
實際產量:
1 2 3 Alarm Clock
我試過在pcntl_signal()
電話報價SIGALRM
(因爲它需要int),但隨後的警報似乎沒有不火:
1 2 3 4 5 6 Normal exit
我假設Alarm Clock
輸出是由於默認處理程序和我的signal_handler()
沒有被調用。是SIGALRM
正確的常數?我錯過了什麼?我正在linux下運行CLI(centos),已經嘗試了php 5.5和5.6。
對'pcntl_signal_dispatch()'的調用是我錯過了。 –