2015-02-25 2 views
3

Я пытаюсь начать redis от узла с помощью child_process модуля со следующим кодом:Ответный никогда не называли в child_process.exec с Redis

var childProcess = require('child_process'); 

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

Когда я запускаю его, обратный вызов не вызывается. Я вижу, что мой redis-server начался на порту 6380 с использованием ps auwx | grep redis-server, поэтому я не понимаю, почему этот обратный вызов не вызывается.

Обратите внимание, что когда я запускаю redis-server --port 6380 в моем терминале, redis также начинается просто отлично.

Я пробовал это с memcached, и он отлично работает.

В чем причина этого обратного вызова?

Большое спасибо

ответ

4

Потому что обратный вызов вызывается только тогда, когда процесс завершается.

Если вам нужно проверить, завершился ли процесс инициализации redis, вы можете использовать spawn с обработчиками событий для stdout.

+0

У вас здесь смешная опечатка. :) Это должно быть * * *. –

+0

Исправлено, спасибо. Он использовал это в течение многих лет ... – mihai

Смежные вопросы