2013-10-22 4 views
2

노드 프로그램을 종료하고 다시 시작해야합니다. 가능하다면 설치가 영원히 필요한 것과 같은 것을 사용할 필요없이 자체 프로그램 내에서이 작업을 수행하고 싶습니다. 나는 process.exit()를 사용하여 프로그램을 종료 할 수 있다는 것을 알고 있지만, 그 노드를 다시 열어서 node 내에서 시작할 수 있다고 생각할 수있는 모든 것은 process.exit()에 의해 종료 될 수있다. 나가기 전에 프로세스에서 exec 호출을 분리하지 못하는 방법이 있습니까? 다른 아이디어? 그것을 빨아 먹고 영원히 사용해야합니까? 신속하고 더러운프로그래밍 방식으로 노드 프로그램을 종료하고 다시 시작할 수 있습니까?

+0

가능한 중복 : http://stackoverflow.com/questions/9357757/node-js-app-that-can-restart-itself. 영원히 사용하고 싶지 않은 특별한 이유가 있습니까? – hopper

답변

2

은 아주 잘 테스트하지 :

var child_process = require('child_process'); 

process.on('SIGINT', function() { 
    console.log('restarting...'); 
    child_process.fork(__filename); // TODO: pass args... 
    process.exit(0); 
}); 

console.log('Running as %d', process.pid); 

setTimeout(function(){}, 1000000); // just some code to keep the process running 
+0

이것은 매력처럼 작동했습니다. 정말 고마워! 노드 프로세스가 process.argv에서 시작된 방법을 얻었고 다시 실행했습니다. – Brian