2012-08-02 94 views
0

我正在運行一個node.js應用程序,它充當中間人代理來代理我通過PhantomJS無頭測試所做的所有請求環境。我想從我的PhantomJS測試腳本(儘管我已經看過它並且似乎幻像沒有用於執行shell命令的exec()命令)或管理這兩個進程的小shell腳本來啓動此代理。理想情況下,它會做類似從shell腳本中刪除Node.js程序

#!/bin/bash 
node proxy.js 
phantomjs runTests.js 
kill node process here 

有沒有什麼辦法可以做到這一點?

回答

3

問了這個問題之後,我發現了一個更好的方法來使用子進程從節點應用程序中執行幻像程序。我把我的幻象腳本包含我節點應用程序的文件夾中,然後使用EXEC是這樣的:

var exec = require('child_process').exec; 
var _phantom = exec('phantomjs runTests.js',function(error,stdout,stderr){ 
    console.log(stdout); 
}; 

_phantom.on('exit',function(code,sig){ 
    process.exit(code); 
}); 

這意味着我可以旋轉起來我的代理服務器,然後執行子進程。 _phantom.on('exit')塊允許我檢測進程何時退出代碼。然後,使用process.exit發信號通知節點應用程序退出非常簡單。