当前位置: 首页> 函数类别大全> proc_terminate

proc_terminate

杀死一个proc_open打开的进程
名称:proc_terminate
分类:程序执行
所属语言:php
一句话介绍: 终止一个由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()函数。

同类函数
  • 把字符串转码为可以在 shell 命令里使用的参数 escapeshellarg

    escapeshellarg

    把字符串转码为可以在shell命令里使用
  • 获取由 proc_open() 函数打开的进程的信息 proc_get_status

    proc_get_status

    获取由proc_open()函数打开的进
  • 执行外部程序并显示输出 system

    system

    执行外部程序并显示输出
  • 执行一个命令,并且打开用来输入/输出的文件指针 proc_open

    proc_open

    执行一个命令,并且打开用来输入/输出的文
  • 执行外部程序并显示原始输出 passthru

    passthru

    执行外部程序并显示原始输出
  • 执行一个外部程序 exec

    exec

    执行一个外部程序
  • 更改当前进程的优先级 proc_nice

    proc_nice

    更改当前进程的优先级
  • shell 元字符转义 escapeshellcmd

    escapeshellcmd

    shell元字符转义
热门文章