我试图设置一个php触发器文件,它将引发一个后台进程。 (请参见this question)PHP exec()作为后台进程(Windows Wampserver环境)
我在Windows Wampserver环境中执行此操作。
因此,例如我有trigger.php
运行执行功能,调用我的backgroundProcess.php
进行分析和执行。
但问题是我的trigger.php
文件正在等待exec()
命令在停止之前完成运行backgroundProcess.php
。后台进程运行大约20-30秒,并且trigger.php
一直在等待,直到backgroundProcess.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
文件,我想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);
这已经导致以随机方式的问题给我。抛出关于无法运行命令的例外。检查我的答案。 – 2013-09-02 11:16:57
什么是在文件backgroundProcess.php? – user3120717 2013-12-29 07:18:11