Node.js의 자식 프로세스 stdout 및 stderr 열 크기

리처드 덴튼

Node.js의 자식 프로세스에서 오는 실시간 데이터를 모니터링하고 싶습니다. 다음 코드 조각으로 문제없이이 작업을 수행 할 수 있습니다.

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 자 (열)로 줄어들고 원하는 데이터의 절반이 누락된다는 것입니다.

터미널 창에서 자체적으로 실행되는 트래픽 몬의 예 (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 개 이상의 열을 반환하도록 자식 프로세스 셸에 지시 할 수있는 방법이 있습니까?

제이슨 라이브 세이

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

자바 프로세스 : 단일 스레드에서 하위 프로세스의 stdout 및 stderr 읽기

분류에서Dev

프로세스 ID가 제공된 프로세스의 stderr 및 stdout보기

분류에서Dev

내 Django 앱에서 Celery의 하위 프로세스 stdout 및 stderr에 액세스

분류에서Dev

node.js 8의 child.process에서 stdout 및 stderr 정의

분류에서Dev

Perl이 하위 프로세스의 STDERR 및 STDOUT을 포착합니다.

분류에서Dev

Bash 스크립트 stderr 및 stdout

분류에서Dev

stdin 입력 문자열을 받아 stderr, stdout 및 반환 코드를 반환하는 Python 하위 프로세스와 유사한 호출이 있습니까?

분류에서Dev

stdin을 stdout 및 stderr에 복제하지만 동기화 된 방식으로

분류에서Dev

두 개의 별도 터미널 창에서 프로세스의 stdout 및 stderr를 볼 수 있습니까?

분류에서Dev

프로세스의 stdin 및 stdout 덤프

분류에서Dev

systemd 서비스의 stdout / stderr보기

분류에서Dev

"3 방향"Python 하위 프로세스 파이프 라인 : stdout 및 stderr를 두 개의 다른 프로세스로 전송 하시겠습니까?

분류에서Dev

스크립트에 stdout 및 stderr로 출력되지 않음

분류에서Dev

분기 된 자식 프로세스 NODE JS의 PID를 얻는 방법

분류에서Dev

Electron-일관된 성능 및 자식 Node.js 프로세스 회전

분류에서Dev

데몬의 stdout 및 stderr를 기록 할 위치

분류에서Dev

stdout 및 stderr을 파일로, stderr을 stdout으로 리디렉션

분류에서Dev

stdout을 stderr로 바꾸기

분류에서Dev

ssh를 수행하는 동안 stdout 및 stderr 하위 프로세스

분류에서Dev

Python 하위 프로세스는 stdout 및 stderr를 억제합니다.

분류에서Dev

stdout 및 / 또는 stderr을 변수의 경로로 리디렉션

분류에서Dev

두 개의 개별 스트림에 stdout 및 stderr 표시

분류에서Dev

두 개의 개별 스트림에 stdout 및 stderr 표시

분류에서Dev

Node.js의 두 자식 프로세스 간 파이프?

분류에서Dev

bash 스크립트의 모든 명령에 대한 stdout 및 stderr의 출력을 파일에 추가

분류에서Dev

변수를 구분하기 위해 프로그램 stdout 및 stderr 캡처

분류에서Dev

Python의 하위 프로세스 / Popen에서 stdout을 stderr로 리디렉션

분류에서Dev

PowerShell 결합 및 로그 Stderr / Stdout

분류에서Dev

스크립트 stderr 및 stdout을 파일로 리디렉션하지만 stdout도 tty로 유지합니까?

Related 관련 기사

  1. 1

    자바 프로세스 : 단일 스레드에서 하위 프로세스의 stdout 및 stderr 읽기

  2. 2

    프로세스 ID가 제공된 프로세스의 stderr 및 stdout보기

  3. 3

    내 Django 앱에서 Celery의 하위 프로세스 stdout 및 stderr에 액세스

  4. 4

    node.js 8의 child.process에서 stdout 및 stderr 정의

  5. 5

    Perl이 하위 프로세스의 STDERR 및 STDOUT을 포착합니다.

  6. 6

    Bash 스크립트 stderr 및 stdout

  7. 7

    stdin 입력 문자열을 받아 stderr, stdout 및 반환 코드를 반환하는 Python 하위 프로세스와 유사한 호출이 있습니까?

  8. 8

    stdin을 stdout 및 stderr에 복제하지만 동기화 된 방식으로

  9. 9

    두 개의 별도 터미널 창에서 프로세스의 stdout 및 stderr를 볼 수 있습니까?

  10. 10

    프로세스의 stdin 및 stdout 덤프

  11. 11

    systemd 서비스의 stdout / stderr보기

  12. 12

    "3 방향"Python 하위 프로세스 파이프 라인 : stdout 및 stderr를 두 개의 다른 프로세스로 전송 하시겠습니까?

  13. 13

    스크립트에 stdout 및 stderr로 출력되지 않음

  14. 14

    분기 된 자식 프로세스 NODE JS의 PID를 얻는 방법

  15. 15

    Electron-일관된 성능 및 자식 Node.js 프로세스 회전

  16. 16

    데몬의 stdout 및 stderr를 기록 할 위치

  17. 17

    stdout 및 stderr을 파일로, stderr을 stdout으로 리디렉션

  18. 18

    stdout을 stderr로 바꾸기

  19. 19

    ssh를 수행하는 동안 stdout 및 stderr 하위 프로세스

  20. 20

    Python 하위 프로세스는 stdout 및 stderr를 억제합니다.

  21. 21

    stdout 및 / 또는 stderr을 변수의 경로로 리디렉션

  22. 22

    두 개의 개별 스트림에 stdout 및 stderr 표시

  23. 23

    두 개의 개별 스트림에 stdout 및 stderr 표시

  24. 24

    Node.js의 두 자식 프로세스 간 파이프?

  25. 25

    bash 스크립트의 모든 명령에 대한 stdout 및 stderr의 출력을 파일에 추가

  26. 26

    변수를 구분하기 위해 프로그램 stdout 및 stderr 캡처

  27. 27

    Python의 하위 프로세스 / Popen에서 stdout을 stderr로 리디렉션

  28. 28

    PowerShell 결합 및 로그 Stderr / Stdout

  29. 29

    스크립트 stderr 및 stdout을 파일로 리디렉션하지만 stdout도 tty로 유지합니까?

뜨겁다태그

보관