2013-09-21 27 views
0

不知道爲什麼這不起作用,如果我運行一個簡單的命令,如cmd ='ls -all',那麼我得到的輸出回來,但是當我用它來運行一個命令有一段時間才能完成,我什麼也沒有收到。節點js Child_process不返回標準輸出

在這個例子中,我使用的lftp鏡像某些文件夾,並希望得到答覆,如果我從終端運行命令那麼當然我看到的輸出,但是使用子過程中,我得到什麼:

var childProcess = require('child_process'); 
var cmd = 'lftp sftp://user:[email protected] -e "mirror -R --delete --parallel=5 /usr/share/scripts/ /volumes/folders/usr/share/;bye"'; 

childProcess.exec(cmd, function (error, stdout, stderr) { 
    console.log('stdout:'+stdout); 
    console.log('stderr:'+stderr); 
    console.log('error:'+error); 
}); 

我也試過產卵方法,沒有從,要麼返回:

var spawn = require('child_process').spawn; 
var lftp = spawn('lftp',['sftp://user:[email protected]', '-e "mirror -R --delete --parallel=5 /usr/share/scripts/ /volumes/folders/usr/share/;bye"']); 
lftp.stdout.on('data', function(data) { 
    console.log(data.toString()); 

}); 

回答