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

标签 node.js process redis

我正在尝试使用带有以下代码的 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/

相关文章:

c# - C#中如何使用更多的DOS命令

javascript - 如何在node.js中发送带有数据和不记名授权的POST请求?

c# - 即使在进程终止时也保证代码执行

c++ - 程序如何成为一个过程。操作系统如何使程序成为一个进程

redis - 按小时在 Redis 中存储和检索记录

c# - 如何修复 Redis 性能问题?

node.js - 使用 Redis Pub/Sub 的 Socket IO 服务器集群

mysql - 使用sequelize在express.js路由中进行原始查询

Node.js 6 和匿名对象

laravel - 当 Laravel 无法连接到 Redis 时如何捕获异常?