2017-01-19 12 views
0

nodeJSを使用してサーバーを制御しようとしています。 nodeJSを使用してサーバーを正しく停止して開始できますが、予期しないエラーが発生してサーバーが起動できなくなることがあります。これらのエラーはコンソールに出力されます。これらのエラーに基づいて私は様々なことをしたいと思います。これらのエラーを取得するには、私はスポーン機能ので、同じように使用:Nodejsで呼び出されたコマンドの出力を保存します。

spawn('./startEngine.sh &> test.txt',[] , options); 

しかし、私はまた、としてオプションを「ファイルに出力」を含めるようにしようとしてい

Error: spawn ./startEngine.sh &> test.txt ENOENT 
    at exports._errnoException (util.js:1026:11) 
    at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32) 
    at onErrorNT (internal/child_process.js:359:16) 
    at _combinedTickCallback (internal/process/next_tick.js:74:11) 
    at process._tickCallback (internal/process/next_tick.js:98:9) 

ENOENTエラーになっているように見えます私はこれを完全に無視し、とにかくコンソールに出力するようですが、スポーン関数のargs。その後、テキストファイルにプロセスの出力を得るための他の方法があるない場合

spawn('./startEngine.sh',['&>', 'test.txt'] , options); 

私は、違った何かをすべきか?前もって感謝します!あなたがstdoutとstderrに耳を傾け、ファイルを自分で書くことができ

答えて

1

...

const child = spawn('./startEngine.sh',[] , options); 
 
const ws = fs.createWriteStream('test.txt'); 
 

 
child.stdout.on('data', data => { 
 
    ws.write(data); 
 
}); 
 

 
child.stderr.on('data', data => { 
 
    ws.write(`stderr: ${data}`); 
 
}); 
 

 
child.on('close', code => { 
 
    ws.write(`process exited with code ${code}`); 
 
    ws.end(); 
 
}); 
 

 
child.on('error', err => { 
 
    ws.write('error encountered', err.message); 
 
    console.dir(err); 
 
});

+0

これは私にも、発生したことがないいくつかの理由で、どうもありがとうございました... – Ted

関連する問題