2015-02-11 51 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