Sto provando a catturare lo stdout da ed child_process
in node.js
(0,10,29).node.js child_process.spawn senza stdout a meno che 'inherit'
In questo momento mi sto solo cercando con ping
Il seguente codice non stampa (ma non fa rumore metallico)
var exec = require('child_process').exec;
var spawn = require('child_process').spawn;
var util = require('util')
var ping = spawn('ping', ['127.0.0.1'], {stdio: 'pipe'});
ping.stdout.on('data', function(data){
util.print(data);
})
ping.stderr.on('data', function(data){
util.print(data);
})
Se cambio stdio: 'pipe'
-stdio: 'inherit'
e sbarazzarsi dei stdout/stderr
ganci come così:
var ping = spawn('ping', ['127.0.0.2'], {stdio: 'inherit'});
// ping.stdout.on('data', function(data){
// util.print(data);
// })
// ping.stderr.on('data', function(data){
// util.print(data);
// })
ottengo
012.351.641.061.PING 127.0.0.2 (127.0.0.2): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Se cambio l'indirizzo 127.0.0.2
-127.0.0.1
, che so che rispondere ai ping e utilizzare il codice originale ottengo
PING 127.0.0.1 (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.060 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.063 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.152 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.124 ms
Tutte le idee perché output/error non sparano data
eventi quando le il ping non è pinging
o inheriting
?
cosa intendi con 'non stampa (ma fa ping)'? – Mritunjay
Il processo 'ping' esegue e ping localhost ma il programma nodo non stampa su stdout. – dbenny
ma ho copiato il tuo codice e funziona bene, credo. – Mritunjay