我正在尝试使用带有以下代码的 child_process
模块从 Node 启动 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 | 在端口 6380 上启动了。 grep redis-server
所以我不明白为什么没有调用这个回调。
请注意,当我在终端中运行 redis-server --port 6380
时,redis 也能正常启动。
我已经尝试使用 memcached
代替,它工作正常。
这个回调没有被调用是什么原因?
非常感谢
最佳答案
因为只有在进程终止时才会调用回调。
如果你需要检查redis进程是否已经完成初始化你可以使用spawn带有标准输出的事件处理程序。
关于node.js - 从未使用redis在child_process.exec中调用回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28721381/