在 Windows PHP 中执行并获取 pid 后台进程
Executing and get pid a background process in PHP on 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"));
?>
当时想获取php -f test.php
的pid。
当我启动 index.php 时,我可以在 tasklist
命令行的输出中看到新的 php.exe
进程。
如何获取此后台进程的 pid。
谢谢。
这将在使用 wmic
执行任务后输出 ProcessID
。然后您可以将其存储在会话或 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
我在 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"));
?>
当时想获取php -f test.php
的pid。
当我启动 index.php 时,我可以在 tasklist
命令行的输出中看到新的 php.exe
进程。
如何获取此后台进程的 pid。
谢谢。
这将在使用 wmic
执行任务后输出 ProcessID
。然后您可以将其存储在会话或 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