来自PHP的EXEC NODE脚本(停止异步任务)

时间:2016-02-21 18:50:01

标签: php node.js console

我尝试运行我的脚本:

$exec_string = '/usr/bin/node /www/laravel/sitemap';
exec($exec_string,$output);

我的脚本在终端上工作正常(chmod和chown == ok)。但是当我从exec运行它时,它在第一次异步任务后完成。节点:

function callAddLink()
{
     1..100 async_function() {

          code and code...

          IT STOPS HERE. NEXT ASYNC TASK NEVER CALLS!
     }
}

为什么会发生?除了php exec之外,代码在任何地方都能正

1 个答案:

答案 0 :(得分:1)

在命令末尾添加&符号,将重定向输出流,直到程序退出。

$exec_string = '/usr/bin/node /www/laravel/sitemap &';
exec($exec_string,$output);

PHP exec函数的默认行为是同步/阻塞(等到程序退出之后再继续)。但是在执行异步节点CLI应用程序时,它似乎在应用程序退出之前返回。