应用 swoole 进行过程相干编程时, 常常会遇到对于过程信号的问题, 在这里做一个整顿
SIGCHLD(17)
子过程退出的时候会向其父过程发送一个 SIGCHLD 信号
Swoole\Process::signal(SIGCHLD, function ($sig) {
// 必须为 false,非阻塞模式
while ($ret = Swoole\Process::wait(false)) {echo "PID={$ret['pid']}\n";
}
});
swoole 监听 SIGCHLD 信号, 设置回调函数对子过程进行非阻塞回收
SIGTERM(15)
失常完结的信号,kill 命令默认信号.
// 默认发送信号 SIGTERM
Swoole\Process::kill(int $pid, int $signo = SIGTERM): bool