proc_terminate
殺死一個proc_open打開的進程
函數名稱:proc_terminate()
適用版本:PHP 4 >= 4.3.0, PHP 5, PHP 7
函數描述:proc_terminate()函數用於終止一個由proc_open()函數創建的進程。
語法:bool proc_terminate(resource $process, int $signal = 15)
參數:
返回值:如果成功終止進程,則返回true;否則返回false。
示例:
$descriptorspec = array( 0 => array("pipe", "r"), // 标准输入,子进程从此管道中读取数据1 => array("pipe", "w"), // 标准输出,子进程向此管道中写入数据2 => array("file", "/tmp/error-output.txt", "a") // 标准错误,写入到一个文件); $process = proc_open('php -r "echo \'Hello, World!\';"', $descriptorspec, $pipes); // 等待一段时间后终止进程sleep(3); proc_terminate($process); // 读取子进程的输出echo stream_get_contents($pipes[1]); // 关闭管道和进程资源fclose($pipes[0]); fclose($pipes[1]); proc_close($process);
上述示例中,我們使用proc_open()函數創建了一個子進程,該子進程執行了一個簡單的PHP命令來輸出"Hello, World!"。然後,我們使用proc_terminate()函數在等待3秒後終止了該子進程。最後,我們通過stream_get_contents()函數讀取了子進程的輸出,並關閉了相關的管道和進程資源。
請注意,proc_terminate()函數只是發送一個信號給進程,但無法保證立即終止進程。如果需要確保進程立即終止,可以使用proc_close()函數代替proc_terminate()函數。