Node.js: Erkennen einer Datei, die mit fs.createWriteStream () geöffnet wurde und gelöscht wird

Angenommen, ich habe das folgende Node-Programm, eine Maschine, die "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);

Jede Sekunde wird eine Nachricht an die Konsole gedruckt und an eine Protokolldatei angehängt (die bei Bedarf beim Start erstellt wird). Es funktioniert alles super.

Aber jetzt, wenn ich das löschemachine.log Datei, während der Prozess ausgeführt wird, wird es weiterhin glücklich summt, aber die Schreibvorgänge werden nicht mehr erfolgreich sein, da die Datei weg ist. Es sieht jedoch so aus, als würden die Schreibvorgänge im Hintergrund fehlschlagen, was bedeutet, dass ich explizit nach dieser Bedingung suchen müsste. Ich habe das durchsuchtDokumente streamen Es scheint jedoch nicht möglich zu sein, ein offensichtliches Ereignis zu finden, das ausgesendet wird, wenn solche Dinge auftreten. Der Rückgabewert vonwrite() ist auch nicht nützlich.

Wie kann ich feststellen, ob eine Datei, in die ich schreibe, gelöscht wurde, damit ich versuchen kann, die Datei erneut zu öffnen oder zu erstellen? Dies ist eine CentOS-Box, falls dies relevant ist.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage