Я тестирую сервер, написанный на nodejs в Windows 7, и когда я пытаюсь запустить тестер в командной строке, я получаю следующую ошибку
Error: listen EADDRINUSE
at errnoException (net.js:614:11)
at Array.0 (net.js:704:26)
at EventEmitter._tickCallback (node.js:192:40)
как исправить без перезагрузки?
sudo killall node
может быть полезноОтветы:
Это означает, что адрес, к которому вы пытаетесь привязать сервер, уже используется. Попробуйте другой порт или закройте программу, использующую этот порт.
источник
node app.js
и остановил его с помощью Ctrl + C, но у меня возникла проблема с EADDRINUSE после первого использованияnpm start
, поэтому кажется, что реальным решением было бы использовать что-то другое, кроме Ctrl + C, для выключения после использованияnpm start
.npm start
сценарий может быть более чем одной программой узла, или программой узла, работающей в фоновом режиме, или программа может иметь дочерние процессы, которые используют этот порт.ps aux | grep node
нашел идентификатор процесса (второй столбец) и просто убил егоkill <pid>
(мой былkill 18762
).Бегать:
Вы получите что-то вроде:
Затем сделайте:
источник
kill -15 60778
было бы намного лучше, так как это позволило бы процессуSIGTERM
SIGKILL
В Linux (по крайней мере, производные Ubuntu)
проще, чем эта форма.
Ничего не получится, если у вас есть ребенок-сирота, держащий порт. Вместо этого сделайте следующее:
Если порт удерживается, вы увидите что-то вроде этого:
Теперь убиваем по pid:
источник
<pid>/<parent>
я получаю-
Следующая команда предоставит вам список запущенных процессов узла.
Чтобы освободить этот порт, остановите процесс, используя следующее.
источник
| grep -v grep
чтобы исключитьgrep
процесс.pidof node
pidof
был легко установлен для меня на osx с помощью homebrewbrew install pidof
Вы получаете сообщение об ошибке,
EADDRINUSE
потому что порт, который ваше приложение хочет использовать, занят другим процессом. Чтобы освободить этот порт, вам нужно прекратить процесс занятия.Поскольку вы работаете в Windows , вы можете завершить процесс с помощью командной строки (
cmd
). С помощьюcmd
вы можете узнать идентификатор процесса (PID) блокирующего приложения. Вам понадобится PID, чтобы завершить / убить процесс.Вот пошаговое руководство ...
Найдите все процессы, которые запущены на указанном порту (в этом примере порт "3000"):
Команда
netstat
выведет список всех процессов, запущенных на указанном порту. В последнем столбцеnetstat
результатов вы можете увидетьPID
s (в этом примере PID - «8308»). Вы можете узнать больше о конкретномPID
, выполнив следующую команду:Если вы хотите завершить процесс, вы можете сделать это с помощью следующей команды, используя его
PID
(в этом примере PID - «8308»):Скриншот
источник
Когда вы получаете сообщение об ошибке Ошибка: слушайте EADDRINUSE,
Попробуйте выполнить следующие команды оболочки:
Я
grep
выбрал 8080, потому что знаю, что мой сервер работает на порте 8080. (static
говорит мне, когда я его запускаю: 'serve "." На http://127.0.0.1:8080 '.) Возможно, вам придется искать другой порт.источник
предположим, что ваш сервер работает на
port 3000
после этого использования
kill -9 <pid>
в приведенном выше случае
sudo kill -9 11716
источник
используйте команду ниже, чтобы убить процесс, запущенный на определенном порту - 3000 в этом примере ниже
источник
Одно из возможных решений, которое сработало для меня, заключалось в том, чтобы просто закрыть окно в браузере, в котором у меня был запущен соответствующий скрипт « http: // localhost: 3000 / ».
источник
Проверьте идентификатор процесса
sudo lsof -i: 8081
Чем убить конкретный процесс
sudo kill -9 2925
источник
Когда вы получаете сообщение об ошибке
Откройте командную строку и введите следующие инструкции:
после этого перезапустите телефонный разрыв интерфейса.
Если вы хотите узнать, какой идентификатор процесса использует телефонный разговор, откройте TASK MANAGER и посмотрите на заголовок столбца PID и найдите PID номер.
источник
Вышеупомянутый
killall -9
узел, предложенный Патриком, работает так, как ожидалось, и решает проблему, но вы можете прочитать часть редактирования этого самого ответа о том, почемуkill -9
это не лучший способ сделать это.Вдобавок к этому вы можете захотеть настроить таргетинг на один процесс, а не слепо убивать все активные процессы.
В этом случае сначала получите идентификатор процесса (PID) процесса, запущенного на этом порту (скажем, 8888):
Это вернет что-то вроде:
(СЛУШАЙТЕ) Тогда просто сделайте (ps - на самом деле нет. Продолжайте читать ниже):
источник
Это работает на Mac:
Шаг 1.
Вышеупомянутая команда предоставит вам идентификаторы процессов, в которых в данный момент находится порт.
Шаг 2.
источник
вы можете изменить свой порт в app.js или в файле конфигурации проекта ur.
по умолчанию ('порт', 80)
и чтобы узнать, используется ли уже порт 80, вы можете сделать
netstat -antp | grep 80
netstat -antp | узел grep
вы можете захотеть увидеть, запущен ли уже процесс узла или нет.
ps -ef | узел grep
и если вы обнаружите, что он уже запущен, вы можете убить его, используя
узел killall
источник
Я создал 2 сервера, прослушивая один и тот же порт 8081, работая с одним и тем же кодом, во время обучения
Создание 1-го сервера сработало, не удалось создать 2-й сервер с EADDRINUSE
Задержки обратного вызова node.js могут быть причиной того, что они не работали, или создание второго сервера имело исключение, и программа завершилась, поэтому 1-й сервер также закрыт
2 подсказка о проблеме с сервером, я получил от: Как исправить ошибку: слушать EADDRINUSE при использовании nodejs?
источник
Ошибка: прослушайте EADDRINUSE, чтобы решить ее в Ubuntu, запустите в терминале
netstat -nptl
и после этогоkill -9 {process-number}
эта команда должна убить процесс узла, и теперь вы можете попробовать снова запустить команду node server.jsбывший
слушать EADDRINUSE ::: 8080
netstat -nptl
tcp6 0 0 ::: 9000 ::: * LISTEN 9660 / java
tcp6 0 0 ::: 5800 ::: * LISTEN -
tcp6 0 0 ::: 5900 ::: * LISTEN -
tcp6 0 0 ::: 8080 :: : * LISTEN 10401 / node
tcp6 0 0 ::: 20080 ::: * LISTEN 9660 / java
tcp6 0 0 ::: 80 ::: * LISTEN -
tcp6 0 0 ::: 22 ::: * LISTEN -
tcp6 0 0 ::: 10137 ::: * СЛУШАТЬ 9660 / java
убить -9 10401
источник
netstat
получает разные параметры.netstat -a -p tcp -b -v
выведет имя процесса.У меня есть красный узел, установленный на моем Mac и моем Raspberry Pi. Была точно такая же проблема, и выполнение killall не помогло. Как только я выключил Raspberry Pi и перезапустил компьютер, он заработал нормально.
источник
Возможно, вы пытались запустить команду npm start на двух разных вкладках. Вы не можете запустить команду npm start, если она уже запущена на какой-либо вкладке. Проверьте это один раз.
источник
Всем, кто пробовал все вышеперечисленное, но все еще не может найти процесс румян, попробуйте их все снова, но убедитесь, что вы добавили sudo перед командами.
источник
Если вам больше нравится UI, найдите процесс Node.js в диспетчере задач Windows и убейте его.
источник
ps -ef | grep node найти app.js, убить pid app.js
источник
просто убейте узел как узел pkill -9 в терминале убанту, чем начальный узел
источник
Вам нужно будет убить порт, попытавшись использовать следующую команду на терминале
источник
[Решено]
Возможно, уже слишком поздно, но это работает как шарм.
Вам нужно
pm2
установитьЧтобы остановить текущий работающий сервер (server.js):
источник
Я решил эту проблему, добавив ниже в свой package.json для уничтожения активного ПОРТА - 4000 (в моем случае) Работает на WSL2 / Linux / Mac
Источник
источник
Чтобы убить сервер узла, сначала запустите эту команду в своем терминале:
top
id
из предыдущего окна:PID number -9 kill
теперь вы убили свой сервер узла, попробуйте еще раз запустить приложение.источник
Я использовал команду
netstat -ano | grep "portnumber"
, чтобы перечислить номер порта / PID для этого процесса. Затем вы можете использоватьtaskkill -f //pid 111111
чтобы убить процесс, последним значением будет pid, который вы найдете из первой команды.Одна из проблем, с которой я иногда сталкиваюсь, - это возрождение узла даже после уничтожения процесса, поэтому мне приходится использовать старый добрый диспетчер задач, чтобы вручную убить процесс узла.
источник
В окне выполните эту команду:
источник