运行线程时,使用 注册的函数pcntl_signal
永远不会被触发。
<?php
declare(ticks = 1);
class Task extends Thread {
public function run () {
while (1) sleep(1); // run forever
}
}
function shutdown () { // never runs :(
echo "Good bye!\n"; exit;
}
pcntl_signal(SIGTERM, 'shutdown');
$task = new Task;
$task->start();
然后,在终端中:
# kill -TERM 123
没有线程时工作正常:
<?php
declare(ticks = 1);
class Task {
public function run () {
while (1) sleep(1); // run forever
}
}
function shutdown () {
echo "Good bye!\n"; exit;
}
pcntl_signal(SIGTERM, 'shutdown');
$task = new Task;
$task->run();
在运行线程时发送 SIGTERM 时如何执行一些代码?我正在使用:php-5.6.7、pthreads-2.0.10、debian-7