一尘不染

PHP exec()作为后台进程(Windows Wampserver环境)

php

我正在尝试设置一个将触发后台进程的php触发文件。

我正在Windows Wampserver环境中执行此操作。

因此,例如,我有trigger.php运行exec函数的程序,该函数要求backgroundProcess.php解析和执行我的程序。

但是问题是我的trigger.php文件在停止之前正在等待exec()命令完成运行backgroundProcess.php。后台进程运行约20-30秒,并trigger.php一直等待所有时间,直到backgroundProcess.php完全完成。

这有意义吗?这是trigger.php运行exec()命令的文件

exec('C:\wamp\bin\php\php'.phpversion().'\php.exe -f C:\path\to\backgroundProcess.php > C:\wamp\bin\php\php'.phpversion().'\dev\null &');

基本上,我trigger.php只想触发backgroundProcess而不要等待它完成。


编辑

使用以下命令解决了问题:

$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run("C:\wamp\bin\php\phpVERSIONNUMBER\php-win.exe -f C:/wamp/www/path/to/backgroundProcess.php", 0, false);

阅读 734

收藏
2020-05-29

共1个答案

一尘不染

使用以下命令解决了问题:

$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run("C:\wamp\bin\php\phpVERSIONNUMBER\php-win.exe -f C:/wamp/www/path/to/backgroundProcess.php", 0, false);
2020-05-29