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

Spe*_*her 4 process redis node.js

我试图redis从节点开始使用child_process具有以下代码的模块:

var childProcess = require('child_process');

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

当我运行它时,永远不会调用回调.我可以看到我redis-server已经开始使用端口6380,ps auwx | grep redis-server所以我不明白为什么不调用这个回调.

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

我试过这个,memcached但它工作正常.

这个回调没有被调用的原因是什么?

非常感谢

mih*_*hai 5

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

如果需要检查redis进程是否已完成初始化,可以使用spawn和stdout的事件处理程序.