proc_terminate
proc_openによって開かれたプロセスを殺します
関数名:proc_terminate()
適用バージョン:PHP 4> = 4.3.0、PHP 5、PHP 7
関数の説明:proc_terminate()関数は、proc_open()関数によって作成されたプロセスを終了するために使用されます。
構文:bool proc_terminate(リソース$プロセス、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()関数を使用して、simple Phpコマンドを実行して「hello、world!」を出力する子プロセスを作成します。次に、proc_terminate()関数を使用して3秒待った後、子プロセスを終了します。最後に、Stream_Get_Contents()関数を介して子プロセスの出力を読み取り、関連するパイプラインとプロセスリソースを閉じます。
proc_terminate()関数はプロセスに信号を送信するだけですが、プロセスがすぐに終了することを保証することはできません。プロセスがすぐに終了することを確認する必要がある場合は、proc_terminate()関数の代わりにproc_close()関数を使用できます。