swoole_async::exec

最后更新于:2022-04-02 06:38:38

# swoole\_async::exec [TOC] 异步执行`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); ~~~
';