函数名:Swoole\Process::exec()
函数描述:Swoole\Process::exec()函数用于在子进程中执行指定的可执行程序。
适用版本:Swoole 4.4.0及以上版本
语法:bool Swoole\Process::exec(string $execfile, array $args)
参数:
- $execfile:要执行的可执行文件的路径。
- $args:传递给可执行文件的参数数组。
返回值:
- 成功时返回true,失败时返回false。
示例:
$process = new Swoole\Process(function (Swoole\Process $process) {
// 在子进程中执行ls命令
if (!$process->exec('/bin/ls', ['-l', '/tmp'])) {
echo "Failed to execute command\n";
}
});
$pid = $process->start();
Swoole\Process::wait();
上述示例中,我们创建了一个子进程,并在子进程中调用Swoole\Process::exec()函数执行了ls命令,传递了参数-l
和/tmp
。如果执行成功,子进程会输出/tmp目录下的文件列表。如果执行失败,将会输出"Failed to execute command"。
需要注意的是,Swoole\Process::exec()函数会替换当前子进程的代码和内存空间,所以在调用该函数后的代码将不会被执行。因此,在上述示例中,我们在子进程中执行了ls命令后,没有再执行其他代码,而是直接调用了Swoole\Process::wait()等待子进程结束。