2013-08-25 56 views
1
father.js 
var spawn = require('child_process').spawn; 
var child = spawn('node',['child.js']); 

setInterval(function(){ 
    child.kill('SIGINT'); 
},2000); 

child.on('exit',function(code,signal){ 
console.log('process exit '+code+' '+signal); 
}); 

child.js 
process.stdin.resume(); 
process.on('SIGINT', function() { 
    console.log('Got SIGINT. Press Control-D to exit.'); 
}); 

節點版本:0.10.17爲什麼子進程不能趕上 'SIGINT'

爲什麼子進程不能趕上 'SIGINT'? 但如果你單獨運行節點child.js,它可以爲ctrl + c終止cmd的信號。

回答

1

它確實得到了SIGINT!只是你沒有聽到子進程輸出。在father.js中添加此行以查看它。

child.stdout.pipe(process.stdout); 
+0

是的,你是right.I想念那個line.But仍然無法work.can嘗試 – hugo

+0

我能夠運行該程序,它表現出了SIGINT。每2秒後。 – user568109

+0

也許是節點的版本,你能告訴你的節點版本和運行平臺嗎? – hugo