2015-02-11 62 views
0

我有一个nodejs脚本,它打开一个洪流,然后我用它来抓取屏幕截图。目前我使用的是一个bash脚本,它不是真正可扩展的。我决定通过使用一个方便的FFMpeg包装为PHP将这大部分移到php。发送nodejs脚本到php的背景没有阻止

问题是,我似乎无法启动从php内部nodejs脚本没有阻止。这是我使用exec()

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

但是无论我尝试,剧本上EXEC挂起运行命令。我只是想把它发送到后台。换句话说,我如何异步执行一个nodejs脚本并将其发送到后台而不关心输出。

这也将是不错的能够得到进程的PID,所以我可以杀了它,当我做

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

+0

为什么不使用'永远'? – 2015-02-11 12:29:44

+0

[Check this out](http://stackoverflow.com/questions/12871740/how-to-detach-spawned-child-process-in-a-node-js-script)。另外如何使用[屏幕](http://ss64.com/bash/screen.html)? – laggingreflex 2015-02-11 12:34:03

+0

@BenDiamant什么是'永远'? – Ortix92 2015-02-11 12:41:21

回答

0

让我提出的东西:

使用forever的管理运行。

你可以用它在JavaScript脚本亚军,作为一个bash(我赞成)

npm install forever -g 

forever start ~/node/peerflix/app.js 'test.torrent' //in bash 

这将运行app.js永远,并能与永远被监控cli来

+0

但我不希望脚本连续运行。我想在PHP完成处理后立即杀死脚本。 – Ortix92 2015-02-11 12:47:16

+1

你可以永远做起,永远停止 – 2015-02-11 12:48:22

+0

是的忘了接受它 – Ortix92 2015-02-12 20:41:32