Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php proc_open()在同一脚本中多次运行时使用相同的PID_Php_Process - Fatal编程技术网

Php proc_open()在同一脚本中多次运行时使用相同的PID

Php proc_open()在同一脚本中多次运行时使用相同的PID,php,process,Php,Process,我目前正在尝试编写一个worker启动器脚本。我使用proc\u open触发流程执行。它可以很好地与一个工作人员配合使用,但是当我尝试打开多个proc\u时,只有第一个工作人员实际运行该进程,而其他工作人员使用proc\u get\u status函数为我提供了相同的PID 一些代码: <?php $procs = []; $count = 10; $script = "date"; while(--$count > 0) { $proc = new Processus(

我目前正在尝试编写一个worker启动器脚本。我使用
proc\u open
触发流程执行。它可以很好地与一个工作人员配合使用,但是当我尝试打开多个
proc\u
时,只有第一个工作人员实际运行该进程,而其他工作人员使用
proc\u get\u status
函数为我提供了相同的PID

一些代码:

<?php
$procs = [];
$count = 10;
$script = "date";
while(--$count > 0)
{
    $proc = new Processus(
        $script,
        null,
        [1 => STDOUT]
    );
    $proc->open();
    $procs[] = $proc;
}

while(true) {
    foreach($procs as $key => $proc) {
        $status = $proc->getStatus();
        if(false === $status['running']) {
            finishProcess($proc, $status);
            unset($procs[$key]);
        }
    }

    if(0 === count($procs)) {
        break;
    }
}