函数名: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
,这样会等待子进程执行完毕后再关闭。