2013-02-11 2 views
6

Node.Js 용으로 작성된 스크립트로 데이터로드를 수집하고 처리하고 저장 한 다음 마칩니다. 불행히도 스크립트를 끝내거나 노드를 닫지 못하도록 막은 것입니다. 대신 열려 있습니다.디버그 노드, 계속 실행 중입니까?

내가 만든 변경 사항을 추적하고 추적하려고 시도하지만 ... 노드를 디버그하고 코드/이벤트/콜백/연결을 쉽게 찾을 수 있습니까? 또는 기다리는 것이 무엇이든간에?

노드 검사기를 살펴 봤지만 열린 상태로 유지하는 방법을 추적하는 방법을 알 수 없습니다. 어떤 충고?

+0

제대로 닫히지 않은 로그 엔트리 용 모듈 인 것으로 보입니다. 어떤 노드가 기다리고 있는지 알아내는 방법을 아는 것이 여전히 유용 할 것이므로 대답으로 표시하지 않았습니다. –

답변

5

wtfnode을 사용하여 node.js 프로그램을 실행하거나 첫 번째 줄 또는 프로그램에 require('wtfnode').init();을 추가 할 수 있습니다. 그런 다음 ctrl + c을 눌러 프로세스를 종료하면 노드를 열어 놓은 모든 항목의 목록을 인쇄합니다. 당신이 닫 기대하는 시점에서

3

내가 이런 일을했을 때 가장 자주 mongodb, amqp와 같은 것입니다. 데이터베이스 연결, 네트워크 연결입니다. 처리가 완료되면 해당 작업을 닫아야합니다.

나는 lsof -p <PID>을 사용하여 그 내용을 볼 수 있습니다. mongodb와 amqp를 볼 수 있습니다.

0

당신은 또한 핸들러

process.on('SIGINT',() => console.log(process._getActiveHandles())); 

노드가 제대로 닫히지 않으면 왜 그렇게에서 Ctrl + C가 당신을 말할 것이다을 추가 할 수 있습니다

console.log(process._getActiveHandles()); 

를 추가합니다.

+0

BTW는 exit 핸들러가 실행되지 않도록하기 때문에 wftnode가 작동하지 않아이 응답을 추가합니다. 기술에 대한 myndzi의 명성. 나는 출구 핸들러가 없다면 wtfnode를 권할 것이다. – teknopaul

관련 문제