函数名:Swoole\Process::close()
适用版本:Swoole 4.4.0 以上版本
函数说明:Swoole\Process::close() 方法用于关闭子进程。
用法:
bool Swoole\Process::close(bool $wait = false)
参数说明:
$wait
(可选):是否等待子进程退出,默认为false
,即立即关闭子进程。
返回值:
- 成功关闭子进程时返回
true
,失败时返回false
。
示例:
<?php
$process = new Swoole\Process(function (Swoole\Process $worker) {
// 子进程的逻辑代码
echo "子进程开始执行\n";
sleep(3);
echo "子进程执行结束\n";
$worker->exit(); // 子进程执行完毕后退出
});
$pid = $process->start(); // 启动子进程
echo "主进程开始执行\n";
// 关闭子进程
if ($process->close()) {
echo "子进程关闭成功\n";
} else {
echo "子进程关闭失败\n";
}
echo "主进程执行结束\n";
输出结果:
主进程开始执行
子进程开始执行
子进程关闭成功
主进程执行结束
注意事项:
- 使用
Swoole\Process::start()
方法启动子进程后,可以通过Swoole\Process::close()
方法来关闭子进程,如果子进程还未执行完毕,则会立即终止子进程的执行。 - 调用
Swoole\Process::close()
方法后,会触发子进程的Swoole\Process::onExit
事件回调函数,可以在该回调函数中执行一些清理工作。 - 如果需要等待子进程退出后再关闭子进程,请将
$wait
参数设置为true
,这样会等待子进程执行完毕后再关闭。