Выполнение и получение pid фонового процесса в PHP на Windows

Я запустил процесс в фоновом режиме на сервере Windows Apache.

index.php после этого:

<?php
$cmd = "C:/xampp/php/php.exe -f test.php";
pclose(popen("start /B ". $cmd, "r"));
echo "OK";
?>

test.php после этого:

<?php
sleep(5);
file_put_contents("1.txt", date("Y-m-d H:i:s"));
?>

В то время я хочу получить pid, который php -f test.php,
Когда я запускаю index.php, я вижу новые php.exe процесс в выводе tasklist командная строка.
Как я могу получить pid для этого фонового процесса.

Благодарю.

4

Решение

Это выведет ProcessID после того, как задача была выполнена с помощью wmic, Затем вы можете сохранить это в сеансе или файле cookie для перехода между страницами.

$cmd = 'wmic process call create "C:/xampp/php/php.exe -f /path/to/htdocs/test.php" | find "ProcessId"';

$handle = popen("start /B ". $cmd, "r");

$read = fread($handle, 200); //Read the output

echo $read; //Store the info

pclose($handle); //Close

Выход

ProcessId = 1000
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]