首先,我正在构建一个与网站前端一起工作的NodeJS应用程序。这是构建的,我想要的是通过PHP启动它。因此,您可以单击“保存”,然后在需要时启动它。
该应用程序是一个websocket服务器,它将侦听websocket并处理来自客户端(我网站的前端)的数据/命令。
现在我用来启动它的代码如下:
$command = '/usr/local/bin/node main.js & echo $!';
$processid = shell_exec($command);
但出于某种原因,当我点击前端的保存它只是挂起并继续加载......但在页面上什么都没有显示?它创建了我可以看到的过程:
lsof -i tcp:8000
并且当我终止节点正在运行的进程时页面才会停止加载...
我正在使用:
kill -9 <pid>
杀了它。所以我有点迷失为什么它没有在后台运行它然后完成PHP脚本......它只是挂在它上面?
任何帮助都将不胜感激。
一旦注意,它是从命令行运行的,所以该文件是一个单独的启动器类,如果我通过php运行它并添加一些代码来完成它的工作任务,它只在我从其他问题上称之为我有问题吗?
如果有帮助;网站使用的框架是Joomla 3.x,提前感谢。
我在MacBook Air El Capitan上, 还需要在Linux CentOS上工作
答案 0 :(得分:1)
使用它。它将抑制STDOUT和STDERR并立即返回,而无需等待命令完成。
>>> user_selection = 'Barracuda Limited'
>>> save_name = user_selection.lower().replace(' ', '_')
>>> save_name
'barracuda_limited'