异步执行Shell
命令。相当于shell_exec
函数,执行后底层会fork
一个子进程,并执行对应的command
命令。
function swoole_async::exec(string $command, callable $callback);
$command
为执行的终端指令,如ls
PID
$callback
函数,回调函数接收2
个参数,第一个参数为命令执行后的屏幕输出内容$result
,第二个参数为进程退出的状态信息$status
fork
创建子进程的操作代价是非常昂贵的,系统无法支撑过大的并发量exec
时,请勿使用pcntl_signal
或swoole_process::signal
注册SIGCHLD
函数,执行wait
操作,否则在命令回调函数中,状态信息$status
将为false
此函数在
1.9.22
或更高版本可用
$pid = Swoole\Async::exec("ps aux", function ($result, $status) {
var_dump(strlen($result), $status);
});
var_dump($pid);