4

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 which を取得したいphp -f test.php。index.php を起動すると、コマンド ラインphp.exeの出力に新しいプロセスが表示されます。tasklistこのバックグラウンド プロセスの pid を取得するにはどうすればよいですか。

ありがとう。

4

1 に答える 1

2

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
于 2016-11-21T10:33:10.800 に答える