Sto cercando di creare uno script Node.js per analizzare l'utilizzo del disco. A tale scopo, eseguo il shelling su du
, ma non riesco a capire come leggere l'output del processo figlio riga per riga. Ecco quello che ho provato finora:Come leggere da un child_process riga per riga in Node.js?
var spawn = require("child_process").spawn,
rl = require('readline'),
du = spawn('du', ['/home']);
linereader = rl.createInterface(du.stdout, du.stdin);
// Read line by line.
//du.stdout.on('data', function (data) {
linereader.on('line', function (data) {
console.log(data);
});
du.stdout.on('data'
legge solo blocchi di dati, e mentre readline
dovrebbe presumibilmente dividere il suo input per riga, non lo fa, invece ho gli stessi dati esatti (du.stdout restituisce un buffer, ma chiamando .toString()
su di esso mi dà gli stessi dati che ho ottenuto con linereader
).
Ah, capisco. Abbastanza triste :) – mikl