pcntl_exec() 函式的運作方式與標準 (Unix 風格) 的 exec() 函式完全相同。它與一般的 PHP exec() 函式的不同之處在於,呼叫 pcntl_exec() 的行程會被呼叫的行程取代。這是建立子行程的理想方法。在一個簡單的範例中 (沒有進行錯誤檢查):
switch (pcntl_fork()) {
case 0:
$cmd = "/path/to/command";
$args = array("arg1", "arg2");
pcntl_exec($cmd, $args);
// 子行程只會在 exec 失敗時才會到達這裡,
// 因為執行會轉移到 pcntl_exec() 呼叫的命令
exit(0);
default:
break;
}
// 父行程繼續執行
echo "我是父行程";
--
因為這不是透過 shell 執行的,所以您必須提供從檔案系統根目錄開始的完整路徑。更多資訊請參考 execve() 的 man 頁面。