从php启动节点似乎可以保持php运行?
因此,首先,我正在构建一个NodeJS应用程序,它与网站前端一起工作。这是建立的,我想通过PHP启动它。因此,如果需要,可以单击“保存”,然后启动它 该应用程序是一个websocket服务器,它将监听websocket并处理来自客户端(我的网站前端)的数据/命令 现在,我用来启动它的代码如下:从php启动节点似乎可以保持php运行?,php,node.js,websocket,frontend,shell-exec,Php,Node.js,Websocket,Frontend,Shell Exec,因此,首先,我正在构建一个NodeJS应用程序,它与网站前端一起工作。这是建立的,我想通过PHP启动它。因此,如果需要,可以单击“保存”,然后启动它 该应用程序是一个websocket服务器,它将监听websocket并处理来自客户端(我的网站前端)的数据/命令 现在,我用来启动它的代码如下: $command = '/usr/local/bin/node main.js & echo $!'; $processid = shell_exec($command); 但由于某种原因,当我
$command = '/usr/local/bin/node main.js & echo $!';
$processid = shell_exec($command);
但由于某种原因,当我点击前端的save时,它只是挂起并继续加载。。。但是在页面上什么都不显示?它创建了我所看到的流程:
lsof -i tcp:8000
只有当我终止节点正在运行的进程时,页面才会停止加载
我正在使用:
kill -9 <pid>
kill-9
杀了它。所以我有点不明白为什么不在后台运行它,然后完成PHP脚本。。。就这么挂着
任何帮助都将不胜感激
需要注意的是,它都是从命令行运行的,所以文件是一个单独的启动程序类,如果我通过php运行它并添加一些代码来执行任务,那么只有当我从其他地方调用它时,我才有问题
如果有帮助;该网站使用的框架是Joomla3.x,提前感谢
我在MacBook Air El Capitan上,
还需要在Linux CentOS上工作,请使用此选项。它将同时抑制STDOUT和STDERR,并在不等待命令完成的情况下立即返回
$command='/usr/local/bin/node main.js>/dev/null 2>&1'代码>您好,谢谢您,我尝试过使用nohup,但是我遇到了以下错误:nohup:无法从控制台分离:设备的ioctl不合适。您好,我刚刚使用了它,结果它成功了,我没有正确管理标准输出,所以它让PHP挂起。非常感谢你!