node.js で子プロセスのイベントをトラップできません。プロセスは正しく実行され、完了すると終了するので、問題ありません。Stdout も正しくパイプ処理されるため、出力が正常に表示されます。残念ながら、イベント ハンドラーがまったく起動しないため、プロセスが完了したときにコールバックを実行することが難しくなります。私のコードは以下の通りです:
var child = child_process.spawn('node',
['processor', reportId.toString()],
{ cwd:cwd, stdio:'pipe', env:env });
child.on('data', function(data) {
console.log('Received data...');
console.log(data.toString('utf8'));
});
child.on('message', function(message) {
console.log('Received message...');
console.log(message);
});
child.on('close', function(code) {
console.log('Child process closed');
});
child.on('disconnect', function(code) {
console.log('Child process disconnected');
callback();
});
child.on('exit', function(code) {
console.log('Child exited with code ' + code);
callback();
});
child.stderr.pipe(process.stderr, { end:true });
child.stdout.pipe(process.stdout, { end:true });
私は何か間違ったことをしていると確信していますが、ドキュメントのどれも問題が何であるかについての手がかりを提供していないようです. 何か案は?
Windowsでノード0.10.8を実行しています。