从shell脚本中杀死Node.js程序

时间:2012-08-02 18:28:41

标签: javascript node.js phantomjs

我正在运行一个node.js应用程序,该应用程序充当中间人代理,代理我通过PhantomJS无头测试环境发出的所有请求。我想从我的PhantomJS测试脚本中调出这个代理(虽然我已经查看了它,似乎幻像没有用于执行shell命令的exec()命令)或者是一个管理这两个进程的小shell脚本。理想情况下,它会做类似

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

我有什么方法可以做到这一点吗?

1 个答案:

答案 0 :(得分: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发送退出节点应用程序非常简单。