0

클라이언트가 서버에서 실행중인 프로그램을 제어 할 수있게 해주는 노드 응용 프로그램을 개발 중입니다. 프로그램은 항상 자체 터미널 창에서 실행되어야합니다. > 명령이 터미널 실행중인 프로그램 -에서 실행되는 프로그램은 뭔가를 내가 너무 노드와 경험이 아니에요노드의 특정 프로세스 ID 제어?

을 수행하지만 난 명령 줄을 실행할 수 있다는 것을 알고> -

클라이언트가 버튼을 클릭 다음과 같이 이상적인 시나리오는 설명한다 스크립트는 ChildProcess 이벤트 이미 터를 사용합니다. 문제는 특정 프로세스 (즉, 조작하려는 프로그램을 실행중인 프로세스)에서 명령을 실행하도록 노드에 지시하는 방법입니다. 특정 프로세스 ID에서 명령을 실행하는 방법이 있습니까? 현재의 모든 프로세스와 ID를 감지 할 수있는 방법이 있습니까?

어떤 제안이나 지시 사항이 크게 감사하겠습니다.

답변

0

자식 프로세스를 만들 때 나중에 참조 할 수 있도록 변수를 변수에 할당 할 수 있습니다. 이 경우 실행중인 프로세스 그룹을 참조 할 수 있도록 개체 나 배열에 추가 할 수 있습니다.

예를 들어 spawn 또는 exec에 대한 설명서를 참조 할 수 있습니다.

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

function spawnChild() { 
    var cmd = spawn('cmd', ['-p1', 'param']); 

    cmd.stdout.on('data', function (data) { 
    console.log('stdout: ' + data); 
    }); 

    cmd.stderr.on('data', function (data) { 
    console.log('stderr: ' + data); 
    }); 

    cmd.on('close', function (code) { 
    console.log('child process exited with code ' + code); 
    }); 

    // Save a reference to this child 
    children.push(cmd); 
} 

// Spawn 5 children 
for (var i = 0; i < 5; i++) { 
    spawnChild(); 
} 

// Send a signal after 5 seconds 
setTimeout(function(){ 
    for (var i in children) { 
    var child = children[i]; 
    console.log('Sending signal to child with PID: ' + child.pid); 
    child.kill('SIGSOMETHING'); 
    } 
}, 5000); 
: 생성 된 자식 프로세스에 명령을 보낼 수

한 가지 방법은 child.kill('SIGSOMETHING'); 예를 들어

로, signals을 사용하고 있습니다