使用redis从未在child_process.exec中调用回调

时间:2015-02-25 14:20:10

标签: node.js process redis

我正在尝试使用redis模块从节点启动child_process,并使用以下代码:

var childProcess = require('child_process');

childProcess.exec('redis-server --port 6380', function(err, stdout, stderr) {
  console.log(err, stdout, stderr);
})

当我运行它时,永远不会调用回调。我可以看到我的redis-server已使用ps auwx | grep redis-server在端口6380上启动,因此我不知道为什么不调用此回调。

请注意,当我在终端中运行redis-server --port 6380时,redis也会正常启动。

我已经尝试使用memcached,而且效果很好。

没有调用此回调的原因是什么?

非常感谢

1 个答案:

答案 0 :(得分:5)

因为仅在进程终止时才调用回调。

如果您需要检查redis进程是否已完成初始化,可以将spawn与stdout的事件处理程序一起使用。