使用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