node.js child_process.spawn no stdout es sei denn 'inherit'
Ich versuche, die stdout von einem zu erfassenspawn
edchild_process
imnode.js
(0.10.29).
Im Moment versuche ich es nur mitping
Der folgende Code wird nicht gedruckt (pingt aber)
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);
})
Wenn ich mich änderestdio: 'pipe'
zustdio: 'inherit'
und die loswerdenstdout/stderr
Haken wie folgt:
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);
// })
Ich bekomme
PING 127.0.0.2 (127.0.0.2): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Wenn ich die Adresse von ändere127.0.0.2
zu127.0.0.1
, von denen ich weiß, dass sie auf die Pings antworten und den ursprünglichen Code verwenden, den ich erhalte
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
Irgendwelche Ideen, warum stdout / stderr nicht feuerndata
Ereignisse, bei denen der Ping nicht istpinging
oderinheriting
?