Kann ich die Konsolenausgabe in Node.js?

Ich versuche, mich zu töten, einen Prozess zunächst habe ich ausgeführt mit

exec  = require('child_process').exec;
exec('kill xxx', function(error, stdout, stderr) {
    if (error) {
        console.log('exec error: ', error);
    }else{
       console.log(stdout)
    }
});

Bemerkte ich das kill-Programm begann wahrscheinlich ein Kind-Prozess, dessen Ausgang nicht erfasst werden hier als stdout.

So kann ich im Allgemeinen erfassen diese Ausgabe in der Konsole, die Sie zu sein scheinen nicht sehr relevant, mit der code?

InformationsquelleAutor J.R. | 2017-12-05



One Reply
  1. 4

    Gestohlen: Knoten: log in eine Datei statt an die Konsole

    var fs = require('fs');
    var util = require('util');
    var log_file = fs.createWriteStream(__dirname + '/debug.log', {flags : 'w'});
    var log_stdout = process.stdout;
    
    console.log = function(d) { //
      log_file.write(util.format(d) + '\n');
      log_stdout.write(util.format(d) + '\n');
    };

    ANTWORT #2
    Diese Meldung ist nicht von der Konsole.melden Sie sich lieber gleich das Linux-system selbst. Wie fängt man diese?

    Ich denke, Sie sollten in der Lage sein, etwas zu tun mit fs wie so…

      var fs = require('fs');
      var util = require('util');
      var log_file = fs.createWriteStream(__dirname + '/debug.log', {flags : 'w'});
      var log_stdout = process.stdout;
    
    const command = 'node your_node_script'; //Whatever you would run in terminal
    
    cp.exec(command, (error, stdout, stderr) => {
        if(error) {
            log_file.write(error);
    
        }
        if(stdout) {
            log_file.write(stdout);
        }
        if(stderr) {
            log_file.write(stderr);
        }
    });
    • hmm, das problem ist. Die Ausgabe in der Konsole ist nicht notwendig, erstellt von der Konsole.log. E. g. wenn ich getötet, ein Prozess, warten für 2 s, dann ist die Konsole generiert eine Meldung „xxx beendet“. Diese Meldung ist nicht von der Konsole.melden Sie sich lieber gleich das Linux-system selbst. Wie fängt man diese?
    • Aktualisierte Antwort mit einem Vorschlag zu versuchen.
    • es ist partiatly funktioniert, aber nicht zeigen zweite argument her-Konsole.melden Sie mit der Variable, nur text-Daten zitiert

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.