次の Node プログラムがあるとします。これは、"Ping!" を実行するマシンです。
var machine = require('fs').createWriteStream('machine.log', {
flags : 'a',
encoding : 'utf8',
mode : 0644
});
setInterval(function () {
var message = 'Ping!';
console.log(message);
machine.write(message + '\n');
}, 1000);
毎秒、コンソールにメッセージを出力し、ログ ファイル (必要に応じて起動時に作成されます) に追加します。それはすべてうまくいきます。
しかし、プロセスの実行中にファイルを削除すると、machine.log
ファイルは引き続きうまく動作しますが、ファイルがなくなるため、書き込みは成功しなくなります。しかし、書き込みは黙って失敗しているように見えます。つまり、この状態を明示的に確認する必要があります。Stream ドキュメントを検索しましたが、この種のことが発生したときに発生する明白なイベントが見つからないようです。の戻り値write()
も役に立ちません。
書き込んでいるファイルが削除されたことを検出して、ファイルを再度開いたり再作成したりするにはどうすればよいですか? 関連する場合、これはCentOSボックスです。