ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
#### Process ~~~ /** * 构造方法 * @param string $commandline 指令 * @param string|null $cwd 工作目录 * @param array|null $env 环境变量 * @param string|null $input 输入 * @param int|float|null $timeout 超时时间 * @param array $options proc_open的选项 * @throws \RuntimeException * @api */ $process = new Process($commandline, $cwd = null, array $env = null, $input = null, $timeout = 60, array $options = []); // 停止 $process->__destruct(); // 克隆 $process->__clone(); /** * 运行指令 * @param callback|null $callback * @return int */ $process->run($callback = null); /** * 运行指令 * @param callable|null $callback * @return self * @throws \RuntimeException * @throws ProcessFailedException */ $process->mustRun($callback = null); /** * 启动进程并写到 STDIN 输入后返回。 * @param callable|null $callback * @throws \RuntimeException * @throws \RuntimeException * @throws \LogicException */ $process->start($callback = null); /** * 重启进程 * @param callable|null $callback * @return Process * @throws \RuntimeException * @throws \RuntimeException */ $process->restart($callback = null); /** * 等待要终止的进程 * @param callable|null $callback * @return int */ $process->wait($callback = null); /** * 获取PID * @return int|null * @throws \RuntimeException */ $process->getPid(); /** * 将一个 POSIX 信号发送到进程中 * @param int $signal * @return Process */ $process->signal($signal); // 禁用从底层过程获取输出和错误输出。 $process->disableOutput(); // 开启从底层过程获取输出和错误输出。 $process->enableOutput(); // 输出是否禁用 $process->isOutputDisabled(); /** * 获取当前的输出管道 * @return string * @throws \LogicException * @throws \LogicException * @api */ $process->getOutput(); // 以增量方式返回的输出结果。 $process->getIncrementalOutput(); // 清空输出 $process->clearOutput(); // 返回当前的错误输出的过程 (STDERR)。 $process->getErrorOutput(); // 以增量方式返回 errorOutput $process->getIncrementalErrorOutput(); // 清空 errorOutput $process->clearErrorOutput(); /** * 获取退出码 * @return null|int */ $process->getExitCode(); /** * 获取退出文本 * @return null|string */ $process->getExitCodeText(); // 检查是否成功 $process->isSuccessful(); // 是否未捕获的信号已被终止子进程 $process->hasBeenSignaled(); // 返回导致子进程终止其执行的数。 $process->getTermSignal(); // 检查是否正在运行 $process->isRunning(); // 检查是否已开始 $process->isStarted(); // 检查是否已终止 $process->isTerminated(); // 获取当前的状态 $process->getStatus(); // 终止进程 $process->stop(); // 添加一行输出 $process->addOutput($line); // 添加一行错误输出 $process->addErrorOutput($line); // 获取被执行的指令 $process->getCommandLine(); // 设置指令 $process->setCommandLine($commandline); // 获取超时时间 $process->getTimeout(); // 获取idle超时时间 $process->getIdleTimeout(); // 设置超时时间 $process->setTimeout($timeout); // 设置idle超时时间 $process->setIdleTimeout($timeout); // 设置TTY $process->setTty($tty); // 检查是否是tty模式 $process->isTty(); // 设置pty模式 $process->setPty($bool); // 是否是pty模式 $process->isPty(); // 获取工作目录 $process->getWorkingDirectory(); // 设置工作目录 $process->setWorkingDirectory($cwd); // 获取环境变量 $process->getEnv(); // 设置环境变量 $process->setEnv(array $env); // 获取输入 $process->getInput(); // 设置输入 $process->setInput($input); // 获取proc_open的选项 $process->getOptions(); // 设置proc_open的选项 $process->setOptions(array $options); // 是否兼容windows $process->getEnhanceWindowsCompatibility(); // 设置是否兼容windows $process->setEnhanceWindowsCompatibility($enhance); // 返回是否 sigchild 兼容模式激活 $process->getEnhanceSigchildCompatibility(); // 激活 sigchild 兼容性模式。 $process->setEnhanceSigchildCompatibility($enhance); // 是否超时 $process->checkTimeout(); // 是否支持pty Process::isPtySupported(); // 创建所需的 proc_open 的描述符 $this->getDescriptors(); // 建立 wait () 使用的回调。 $this->buildCallback($callback); // 更新状态 $this->updateStatus($blocking); // 是否开启 '--enable-sigchild' $this->isSigchildEnabled(); // 验证是否超时 $this->validateTimeout($timeout); // 读取pipes $this->readPipes($blocking, $close); // 捕获退出码 $this->captureExitCode(); /** * 关闭资源 * @return int 退出码 */ $this->close(); // 重置数据 $this->resetProcessData(); // 将一个 POSIX 信号发送到进程中。 $this->doSignal($signal, $throwException); // 确保进程已经开启 $this->requireProcessIsStarted($functionName); // 确保进程已经终止 $this->requireProcessIsTerminated($functionName); ~~~