Я впервые работаю с Node.js и столкнулся с этой проблемой:
Я запустил Node-сервер через плагин IDE. К сожалению, я не могу использовать терминал IDE. Поэтому я попытался запустить скрипт из командной строки.
Это проблема - я использую модуль Express, и мое приложение прослушивает какой-то порт (8080). Когда я запускаю приложение из командной строки, оно выдает эту ошибку:
events.js:71
throw arguments[1]; // Unhandled 'error' event
^
Error: listen EADDRINUSE
at errnoException (net.js:770:11)
at HTTPServer.Server._listen2 (net.js:910:14)
at listen (net.js:937:10)
at HTTPServer.Server.listen (net.js:986:5)
at Object.<anonymous> (C:\xampp\htdocs\node\chat\app.js:5:5)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.runMain (module.js:492:10)
Хотя я не очень уверен, что это за ошибка, я предположил, что это происходит потому, что приложение прослушивает порт, который уже используется. Так я и сделал:
netstat -an
я могу видеть
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING
Это потому, что Node-сервер уже запущен, когда я пытался запустить его из IDE.
Итак, я хочу знать, как я могу остановить все экземпляры сервера? Также, если вы можете сказать мне, как определить, что работает на порту и убить его.
Ответы:
Windows Machine:
Необходимо убить сервер Node.js, и у вас не запущены никакие другие процессы Node, вы можете указать своей машине, чтобы она уничтожила все названные процессы
node.exe
. Это будет выглядеть так:И если процессы все еще продолжаются, вы можете принудительно завершить процессы, добавив
/f
флаг:Если вам нужен более детальный контроль и вам нужно только уничтожить сервер, работающий на определенном порту, вы можете использовать,
netstat
чтобы найти идентификатор процесса, а затем отправить ему сигнал уничтожения. Так что в вашем случае, где находится порт8080
, вы можете запустить следующее:Пятый столбец вывода - это идентификатор процесса:
Затем вы можете убить процесс с
taskkill /pid 14828
. Если процесс отказывается выйти, просто добавьте параметр/f
(force) в команду.Linux-машина:
Процесс практически идентичен. Вы можете уничтожить все процессы Node, запущенные на компьютере (используйте,
-$SIGNAL
еслиSIGKILL
недостаточно):Или, используя
netstat
, вы можете найти PID процесса, прослушивающего порт:Идентификатор процесса в этом случае - это номер перед именем процесса в шестом столбце, который затем можно передать
kill
команде:Если процесс отказывается выходить, просто используйте
-9
флаг, который являетсяSIGTERM
и не может быть проигнорирован:источник
process.exit()
в вашем приложении вызывает закрытие экземпляра NodeJS.killall node
В bash будут убиты все экземпляры NodeJS, работающие на вашем компьютере.taskkill /IM node.exe
. Это убьет все названные процессыnode.exe
.Самый быстрый способ
Работает с Linux, OS X
источник
node: no process found
Кроме того, когда я выполняю поиск процессов узла, которые выполняются на определенном порте, идентификатор процесса имеет-
вместо самого номера.Вы можете использовать
lsof
получить процесс, который привязан к требуемому порту.К сожалению, флаги кажутся разными в зависимости от системы, но в Mac OS X вы можете запустить
Например, на моей машине я получаю что-то вроде:
Второе число - это PID, а порт, который они слушают, находится справа перед "(СЛУШАТЬ)". Найти мошеннический PID и
kill -9 $PID
завершить с предубеждением.источник
Терминал Windows & GitBash Мне нужно было использовать эту команду в терминале Windows / Webstorm / GitBash
источник
если вы хотите убить определенный процесс узла, вы можете перейти к маршруту командной строки и набрать:
чтобы получить список всех идентификаторов процессов узла. Теперь вы можете получить свой идентификатор процесса (pid), затем выполните:
и если вы хотите уничтожить все процессы узла, выполните:
-9 переключатель как конечная задача на окнах. это заставит процесс закончиться. ты можешь сделать:
чтобы увидеть все переключатели команды kill и их комментарии.
источник
Вы можете попробовать это:
источник
Linux
Чтобы произвести впечатление на своих друзей
Но это тот, который вы будете помнить
источник
Вы также можете попробовать:
killall nodejs
источник
Если вы используете Windows, выполните следующие действия:
Откройте диспетчер задач, ищите этот процесс:
Затем просто щелкните правой кнопкой мыши и «Завершить задачу».
Теперь все команды npm запускаются с самого начала.
источник
Мультиплатформенное, стабильное, лучшее решение:
используйте fkill, чтобы убить процесс, который принимает ваш порт:
Для установки fkill используйте команду: npm i -g fkill
источник
можешь попробовать
Вы также можете попробовать
источник
он отлично работает в Windows 10
источник
Использую операционную систему Windows.
Я убил весь процесс узла и перезапустил приложение, которое работало.
пытаться
источник
Используйте следующую команду, чтобы убить и перезапустить сервер узла из командного файла.
источник
в Windows введите команду blow:
taskkill / f / im node.exe
источник
Нажмите в cmd или bash: Ctrl + C
источник