Току-що минах през този проблем.
Проблемът само с използването на process.exit()
е, че програмата, по която работя, създаваше манипулатори, но никога не ги унищожаваше.
Обработваше директория и поставяше данни в orientdb .
така че някои от нещата, които научих, са, че връзките към базата данни трябва да бъдат затворени, преди да се отърват от препратката. И този process.exit()
не решава всички случаи.
Когато моят проект обработи 2000 файла. Щеше да спадне до около 500 останали, а допълнителните дръжки щяха да запълнят наличната работна памет. Което означава, че няма да може да продължи. Следователно никога не достига до process.exit
в края.
От друга страна, ако затворите елементите, които изискват приложението да остане отворено, можете да разрешите проблема в неговия източник.
Двете „недокументирани функции“, които успях да използвам, бяха
process._getActiveHandles();
process._getActiveRequests();
Не съм сигурен какви други функции ще помогнат за отстраняване на грешки от този тип проблеми, но тези бяха невероятни.
Те връщат масив и можете да определите много за това какво се случва във вашия процес, като използвате тези методи.
Просто се надявам, че това ще помогне на някой друг да се натъкне на тази публикация.