我尝试运行我的脚本:
$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之外,代码在任何地方都能正
答案 0 :(得分:1)
在命令末尾添加&符号,将重定向输出流,直到程序退出。
$exec_string = '/usr/bin/node /www/laravel/sitemap &';
exec($exec_string,$output);
PHP exec函数的默认行为是同步/阻塞(等到程序退出之后再继续)。但是在执行异步节点CLI应用程序时,它似乎在应用程序退出之前返回。