【问题标题】:Killing a Node.js program from a shell script从 shell 脚本中杀死 Node.js 程序
【发布时间】:2012-08-02 18:28:40
【问题描述】:
我正在运行一个 node.js 应用程序,它充当中间人代理,以代理我通过 PhantomJS 无头测试环境发出的所有请求。我想从我的 PhantomJS 测试脚本中启动这个代理(尽管我已经研究过了,似乎 phantom 没有用于执行 shell 命令的exec() 命令)或一个管理这两个进程的小型 shell 脚本。理想情况下,它会做类似
#!/bin/bash
node proxy.js
phantomjs runTests.js
kill node process here
有什么办法可以做到吗?
【问题讨论】:
标签:
javascript
node.js
phantomjs
【解决方案1】:
在提出这个问题后不久,我发现了一种更好的方法,可以使用子进程从我的节点应用程序中执行幻像程序。我将幻影脚本放在包含我的节点应用程序的文件夹中,然后像这样使用 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 向节点应用发出退出信号非常简单。