2011-04-06 3 views
0

Node.JS를 사용하여 상위 프로세스 ID를 가져올 수 있습니까? 학부모가 사망했거나 아동에게 알릴 수없는 방식으로 실패했는지 감지하고 싶습니다. 이런 일이 발생하면 자식의 부모 프로세스 ID는 1이되어야합니다.Node.JS 상위 프로세스 ID

이것은 부모에게 주기적으로 신호를 보내고 ps 명령을 실행하는 것이 더 바람직합니다.

+0

"Child Processes?"시스템을 사용합니까? – Emmerman

+0

@Emmerman : 무슨 뜻인지 모르겠다. 부모는 자식을 시작하기 위해'require ('child_process'). spawn (process.argv [0], [ 'path_to_child.js'])'을 실행합니다. 그런 다음 아이에게 이야기해야한다면 아이의 표준 및 표준 출력을 사용합니다. stderr는 로그에 파이프됩니다. 나는 그 대답이 맞을 것 같습니까? –

답변

5

pid-file을 사용할 수 있습니다. 그

var util = require('util'), 
    fs = require('fs'), 
    pidfile = '/var/run/nodemaster.pid'; 

try { 
    var pid = fs.readFileSync(pidfile); 
    //REPLACE with your signal or use another method to check process existence :) 
    process.kill(pid, 'SIGUSR2'); 
    util.puts('Master already running'); 
    process.exit(1); 
} catch (e) { 
    fs.writeFileSync(pidfile, process.pid.toString(), 'ascii'); 
} 

//run your childs here 

같은 뭔가 또한 당신은

0

가 나는 배경 작업자와 같은 원시 OSX 응용 프로그램 내에서 Node.js를 시작 spawn() 호출에 인수로 PID를 보낼 수 있습니다. 그런

// Watch parent exit when it dies 

process.stdout.resume(); 
process.stdout.on('end', function() { 
 process.exit(); 
}); 

쉬운, 그러나 당신이 있었던 거라면 난 정확히 모르겠어요 : Node.js를 표준 출력을 소비하는 부모 프로세스가 죽었을 때 종료/Node.js를 종료하려면, 나는 다음을 수행 묻기 :-)

관련 문제