English | 简体中文 | 繁體中文
查询

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)

参数:

  • $process:proc_open()函数返回的进程资源。
  • $signal(可选):要发送给进程的信号,默认为SIGTERM(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()函数。

补充纠错
上一个函数: property_exists()函数
下一个函数: proc_open()函数
热门PHP函数
分享链接