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

Callback never called in child_process.exec with redis

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

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 试过了,效果很好。

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

非常感谢

因为只有在进程终止时才会调用回调。

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