2014-09-16 1 views
0
gulpfile.js 

var shell = require('gulp-shell'); 

gulp.task('startRedis', shell.task([ 
    'redis-2.8.15/src/redis-server > /dev/null &' 
])); 

위의 startRedis 꿀꺽 작업을 실행할 때 redis 서버가 시작되지만 종료되지 않습니다.백그라운드에서 Redis 서버를 시작한 후에 꿀꺽 거리는 작업이 멈추는 문제가 발생했습니다.

$gulp startRedis 
[19:03:42] Using gulpfile ~/myhome/gulpfile.js 
[19:03:42] Starting 'startRedis'... 

내가 redis 서버를 중지하면 반환합니다. 무엇이 잘못되었는지 잘 모릅니다. 도와주세요. 당신이 이렇게 좀비 레디 스 서버 프로세스를 생성, 즉시 종료 꿀꺽하려는 경우 그 수

var exec = require('child_process').exec; 

gulp.task('startRedis', function() { 
    exec('redis-2.8.15/src/redis-server', function(err, stdout, stderr) { 
    if (err) { 
     console.log(err, stdout, stderr); 
    } 
    }); 
}); 

: 그냥 작업을 즉시 완료 할 가정

답변

1

, 당신은 직접 child_process.exec를 사용하여 더 나은 오프 될 수있다 더 복잡해.

0

내 레디 스 서버를 시작 꿀꺽 쉘을 사용되었지만, 그것은 내가 그것을 안전

gulp.task('dev-redis', function() { 
    exec('redis-server --port 7777 --notify-keyspace-events KExe', function (err, stdout, stderr) { 
     console.log(stdout); 
     console.log(stderr); 
    }); 
}); 
gulp.task('dev',['dev-redis'], function() { 

    /* 
    * Add on('change').on('restart') allow to add listeners 
    * Even if you don't precise callback functions, it triggers the change/restart event 
    * */ 
    nodemon({ script: 'index.js', nodeArgs: ['--debug'], env: { 'NODE_ENV': 'development' } }) 
     .on('change', []) 
     .on('restart', function() { 
      console.log('restarted!'); 
     }); 
}); 
을 할 수

exec = require('child_process').exec;

내 노드 응용하기 전에 모든 시간을 시작되지 않았다