Node.js中的子进程stdout和stderr列大小

理查德·丹顿

我想监视来自Node中的子进程的实时数据。使用以下代码段,我可以做到这一点。

var fs = require('fs');
var spawn = require('child_process').spawn;

(function(){

  "use strict";

  var processMonitor, processListen, processDeauth;

  var parseStreamDataIn = function(data) {

    var str = data.toString('utf8');
    console.log(str);

  };

  var init = function() {

    processMonitor = spawn('trafficmon' , ['-w'], {'shell': '/bin/bash'});

    processMonitor.stdout.on('data', function (data) {
      //trafficmon uses stderr, nothing needed here...
    });
    processMonitor.stderr.on('data', parseStreamDataIn);
    processMonitor.on('close', function (code) {
      processMonitor = null;
    });

  };

  init();

})();

问题是,正在返回并记录在parseStreamDataIn()中的数据被缩减为每行80个字符(列),剩下一半我想要丢失的数据。

在终端窗口中自行运行trafficmon的示例(已手动扩展为120个字符的宽度)

EC:XX:XX:XX:XX:XX  131        1        0    0   1  128 120614 HTTPS   SSL  cluster1.xxxxx.com

我的节点脚本示例运行相同的命令并将数据记录到相同大小的终端窗口中。

EC:XX:XX:XX:XX:XX  131        1        0    0   1  128 120614 HTTPS   SSL  clus

如您所见,字符串的尾部被切掉了。

有什么办法可以告诉我的子进程外壳每行返回80列以上?

杰森·利维赛(Jason Livesay)

pty.js 允许您指定诸如列数之类的内容。

var pty = require('pty.js');

var term = pty.spawn('bash', [], {
  name: 'xterm-color',
  cols: 80,
  rows: 30,
  cwd: process.env.HOME,
  env: process.env
});

term.on('data', function(data) {
  console.log(data);
});

term.write('ls\r');
term.resize(100, 40);
term.write('ls /\r');

console.log(term.process);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Node.js中的子进程stdout和stderr列大小

来自分类Dev

在 node.js 8 的 child.process 中定义 stdout 和 stderr

来自分类Dev

Node.js spawn:保持 StdOut 和 StdErr 的原始顺序

来自分类Dev

node.js 与 docker 中的子进程

来自分类Dev

如何从Node JS中的子进程获取进程ID

来自分类Dev

在node.js中同时使用子进程和集群是否意味着完全

来自分类Dev

在node.js中同时使用子进程和集群是否意味着完全

来自分类Dev

Node.js子进程和管道-OSX与Ubuntu

来自分类常见问题

node.js子进程-生成和派生之间的区别

来自分类Dev

除非子进程fllush(stdout),否则Node.js始终无法完全捕获子进程的stdout数据。

来自分类Dev

如何在node.js子进程模块中将消息以及stdout从子进程传递到父进程?

来自分类Dev

Node.js-在子进程中需要相同的模块

来自分类Dev

Node.js子进程中的数据丢失

来自分类Dev

node.js在子进程中运行功能?

来自分类Dev

从Node JS子进程中的python脚本返回结果

来自分类Dev

从stdin读取时,Node.js无法读取python子进程stdout

来自分类Dev

Perl捕获子进程的STDERR和STDOUT

来自分类Dev

Python子进程抑制stdout和stderr

来自分类Dev

如何在node.js(不是子进程)中启动全新的进程?

来自分类Dev

node.js子进程更改目录并运行该进程

来自分类Dev

Node.js 子进程到 Python 进程

来自分类Dev

在Erlang中,如何独立捕获子进程的stdout和stderr?

来自分类Dev

在我的Django应用中访问Celery的子进程stdout和stderr

来自分类Dev

在node.js中的脚本退出时已分离的子进程退出

来自分类Dev

如何在node.js中关闭子进程的stdio管道?

来自分类Dev

node.js子进程在节点webkit中不起作用

来自分类Dev

node.js 子进程中的 socket.io-client Web 套接字连接失败

来自分类Dev

如何正确地连续调用 Node.js 中的子进程?

来自分类Dev

如何使子进程按顺序获取stdout和stderr?

Related 相关文章

  1. 1

    Node.js中的子进程stdout和stderr列大小

  2. 2

    在 node.js 8 的 child.process 中定义 stdout 和 stderr

  3. 3

    Node.js spawn:保持 StdOut 和 StdErr 的原始顺序

  4. 4

    node.js 与 docker 中的子进程

  5. 5

    如何从Node JS中的子进程获取进程ID

  6. 6

    在node.js中同时使用子进程和集群是否意味着完全

  7. 7

    在node.js中同时使用子进程和集群是否意味着完全

  8. 8

    Node.js子进程和管道-OSX与Ubuntu

  9. 9

    node.js子进程-生成和派生之间的区别

  10. 10

    除非子进程fllush(stdout),否则Node.js始终无法完全捕获子进程的stdout数据。

  11. 11

    如何在node.js子进程模块中将消息以及stdout从子进程传递到父进程?

  12. 12

    Node.js-在子进程中需要相同的模块

  13. 13

    Node.js子进程中的数据丢失

  14. 14

    node.js在子进程中运行功能?

  15. 15

    从Node JS子进程中的python脚本返回结果

  16. 16

    从stdin读取时,Node.js无法读取python子进程stdout

  17. 17

    Perl捕获子进程的STDERR和STDOUT

  18. 18

    Python子进程抑制stdout和stderr

  19. 19

    如何在node.js(不是子进程)中启动全新的进程?

  20. 20

    node.js子进程更改目录并运行该进程

  21. 21

    Node.js 子进程到 Python 进程

  22. 22

    在Erlang中,如何独立捕获子进程的stdout和stderr?

  23. 23

    在我的Django应用中访问Celery的子进程stdout和stderr

  24. 24

    在node.js中的脚本退出时已分离的子进程退出

  25. 25

    如何在node.js中关闭子进程的stdio管道?

  26. 26

    node.js子进程在节点webkit中不起作用

  27. 27

    node.js 子进程中的 socket.io-client Web 套接字连接失败

  28. 28

    如何正确地连续调用 Node.js 中的子进程?

  29. 29

    如何使子进程按顺序获取stdout和stderr?

热门标签

归档