У меня есть проект node.js, который делает много вещей, он порождает дочерние процессы, он открывает сервер http и socket.io и т.д.
Когда я запускаю его с консоли, закрывая его Ctrl+C
, он просто зависает.
Из webstorm остановка процесса - это двухэтапный процесс, сначала я нажимаю стоп, затем мне нужно снова нажать кнопку, только во второй раз, когда кнопка представляет собой значок черепа.
Теперь я понимаю, что он оставляет что-то открытое или висячее, но я просто не могу понять, что, я пытался отслеживать все места, где я запускаю процесс, и убедиться, что я их правильно убиваю.
Есть ли способ отладить это и выяснить, что заставляет мой процесс зависать? Может ли быть регистрация, которая открывает поток записи и никогда не закрывается? Я даже не уверен, какие вещи заставляют процесс зависать на SIGINT.
EDIT: я загрузил pstree
, чтобы узнать, остается ли какой-либо из дочерних процессов, оставшихся в процессе основного процесса. Похоже, все они заканчиваются правильно - основной node процесс остается единственным.