Как остановить запуск сервера Node.js (Экспресс) в терминале Hyper

#node.js #express #server #terminal #nodemon

#node.js #экспресс #сервер #терминал #nodemon

Вопрос:

Когда я выхожу из hyper terminal во время запуска сервера (порт: 1000) (на основе Express.js ), который был запущен с помощью nodemon, и снова откройте hyper terminal и попробуйте снова запустить сервер (порт: 1000) с / без nodemon, возникает следующая ошибка. Я не уверен, вызвано ли это hyper terminal или nodemon.

Я просто хотел бы знать, почему сервер все еще работает, хотя я уже вышел из терминала, и как принудительно остановить сервер после повторного открытия терминала.

 events.js:292
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE: address already in use :::1000
    at Server.setupListenHandle [as _listen2] (net.js...

(---snipped---)

  code: 'EADDRINUSE',
  errno: -48,
  syscall: 'listen',
  address: '::',
  port: 1000
}
[nodemon] app crashed - waiting for file changes before starting...
 

Ответ №1:

Nodemon предназначен для перезапуска приложения узла, когда оно обнаруживает сбой, и поэтому оно, вероятно, перезапускается, когда вы покидаете сеанс терминала.

Чтобы принудительно остановить процесс nodemon, запустите:

 sudo ss -lnp | grep 1000
 

В этом списке перечислены все процессы, прослушивающие порт 1000

Обратите внимание на pid, т.е.

 pid=27027
 

Тогда беги:

 sudo kill -9 27027