Однажды ни с того ни с сего мое приложение решило не умирать.
После нажатия ctrl + c, когда я проверяю порт, он все еще там, и не только на моей машине, но и на сервере, которым управляет PM2, поэтому мне нужно каждый раз заходить туда и убивать процесс вручную. Я пытался искать проблемы в своем коде, и когда я не мог, я просто думал, что это просто одна из ошибок зависимостей, и скоро будет исправление. Это немного раздражало, но я мог убить процесс с помощью kill -9 PID, и у меня было большинство задач, которые у меня были на интерфейсной стороне, так что это не было большой проблемой. Сегодня, более чем через неделю, проблема все еще здесь. Я вернулся в историю, выбрал коммит, сделанный несколько недель назад, где все работало отлично, переключил NodeJS с 5.1.0 на 4.2.1, очистил кеш npm, переустановил все зависимости и все еще вижу проблему. Я использую LoopbackJS, но обычно я запускаю приложение просто с помощью «node server/server.js», и тогда возникает проблема, описанная выше, но если я использую «slc run», а затем пытаюсь убить приложение с помощью ctrl + c это просто зависает навсегда, я имею в виду, что я могу нажимать ctrl + c столько раз, сколько захочу, и он все еще работает на переднем плане консоли.
Если вместо нажатия ctrl+c я убиваю вкладку в консоли, приложение умирает без проблем.
Это то, что я вижу после запуска «lsof -i tcp: 4000», когда приложение должно быть мертво, но не
Редактировать: запуск и уничтожение его с помощью диспетчера процессов Strongloop - slc start/slc stop работает нормально, но было бы удобнее использовать обычный способ запуска приложения NodeJS (node server.js) во время разработки, и это не меняет того факта, что есть есть какая-то проблема, и лучше бы ее не прятать под ковер.
slc clusterctl stop
? илиslc ctl stop
в новой версии? Я предполагаю, что он убивает контроллер кластера, но оставляет дочерние процессы запущенными. - person Kevin B   schedule 23.11.2015process.on('SIGINT',
? - person Dan Crews   schedule 23.11.2015