<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # swoole_process->exec 執行一個外部程序,此函數是exec系統調用的封裝。 ```php bool swoole_process->exec(string $execfile, array $args) ``` * `$execfile`指定可執行文件的絕對路徑,如 `"/usr/bin/python"` * `$args`是一個數組,是exec的參數列表,如 `array('test.py', 123)`,相當與`python test.py 123` 執行成功后,當前進程的代碼段將會被新程序替換。子進程蛻變成另外一套程序。父進程與當前進程仍然是父子進程關系。 父進程與新進程之間可以通過可以通過標準輸入輸出進行通信,必須啟用標準輸入輸出重定向。 > `$execfile`必須使用絕對路徑,否則會報文件不存在錯誤 > 由于`exec`系統調用會使用指定的程序覆蓋當前程序,子進程需要讀寫標準輸出與父進程進行通信 > 如果未指定`redirect_stdin_stdout = true`,執行`exec`后子進程與父進程無法通信 調用示例 ---- ```php $process = new \Swoole\Process(function (\Swoole\Process $childProcess) { // 不支持這種寫法 // $childProcess->exec('/usr/local/bin/php /var/www/project/yii-best-practice/cli/yii t/index -m=123 abc xyz'); // 封裝 exec 系統調用 // 絕對路徑 // 參數必須分開放到數組中 $childProcess->exec('/usr/local/bin/php', ['/var/www/project/yii-best-practice/cli/yii', 't/index', '-m=123', 'abc', 'xyz']); // exec 系統調用 }); $process->start(); // 啟動子進程 ``` 父進程與exec進程使用管道進行通信: ```php // exec - 與exec進程進行管道通信 use Swoole\Process; $process = new Process(function (Process $worker) { $worker->exec('/bin/echo', ['hello']); $worker->write('hello'); }, true); // 需要啟用標準輸入輸出重定向 $process->start(); echo "from exec: ". $process->read(). "\n"; ``` 執行 shell 命令 ---- `exec`方法與`PHP`提供的`shell_exec`不同,它是更底層的系統調用封裝。如果需要執行一條`shell`命令,請使用以下方法: ```php $worker->exec('/bin/sh', array('-c', "cp -rf /data/test/* /tmp/test/")); ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看