在php中将nodejs脚本发送到后台而不进行阻塞


Send nodejs script to background in php without blocking

我有一个nodejs脚本,它打开了一个torrent流,然后我用它来获取屏幕截图。目前,我使用的bash脚本并不是真正可扩展的。我决定通过为php使用一个方便的FFMpeg包装器,将大部分内容转移到php。

问题是,我似乎无法在没有阻塞的情况下从php中启动nodejs脚本。这是我使用exec() 运行的命令

node ~/node/peerflix/app.js 'test.torrent' &> /dev/null &

不管我怎么做,脚本都挂在exec上。我只是想把它发送到后台。换句话说,如何异步执行nodejs脚本并将其发送到后台而不关心输出。

如果能得到进程的PID,这样我就可以在完成时杀死它,那也太好了

我一直在研究ReactPHP,也许这是一个解决方案,但我不知道如何实现

让我提出一些建议:

永久使用,便于管理跑步。

你可以在的javascript运行程序脚本中使用它作为bash(我喜欢)

npm install forever -g
forever start  ~/node/peerflix/app.js 'test.torrent' //in bash

这将永远运行app.js,并且可以使用forever cli 进行监控