2012-08-02 140 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发信号通知节点应用程序退出非常简单。