Вышеупомянутый killall -9 node
, предложенный Патриком, работает как положено и решает проблему, но вы можете прочитать часть этого ответа, посвященную редактированию, о том, почему kill -9
может быть не лучшим способом сделать это.
Кроме того, вам может потребоваться нацелиться на отдельный процесс, а не на слепое уничтожение всех активных процессов.
В этом случае сначала получите идентификатор процесса (PID) процесса, запущенного на этом порту (скажем, 8888):
lsof -i tcp:8888
Это вернет что-то вроде:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 57385 You 11u IPv6 0xac745b2749fd2be3 0t0 TCP *:ddi-tcp-1 (LISTEN)
Тогда просто сделайте (ps - на самом деле не . Пожалуйста, продолжайте читать ниже):
kill -9 57385
Подробнее об этом можно прочитать здесь .
РЕДАКТИРОВАТЬ: Сегодня я читал на довольно связанную тему и наткнулся на эту интересную тему на , почему я не должен kill -9
процесс .
Как правило, вы должны использовать kill -15 до kill -9 , чтобы дать целевому процессу шанс убраться за собой. (Процессы не могут перехватить или проигнорировать SIGKILL, но они могут и часто перехватывают SIGTERM.) Если вы не дадите процессу завершить то, что он делает, и очистить, он может оставить поврежденные файлы (или другое состояние) вокруг что он не сможет понять после перезапуска.
Итак, как уже говорилось, вам лучше убить описанный выше процесс с помощью:
kill -15 57385
РЕДАКТИРОВАТЬ 2 : Как отмечалось в комментарии здесь , много раз эта ошибка является следствием не изящного выхода из процесса. Это означает, что многие люди выходят из команды узла (или любой другой), используя CTRL + Z . Правильный способ остановить запущенный процесс - ввести команду CTRL + C , которая выполняет чистый выход.
Правильный выход из процесса освободит этот порт при завершении работы. Это позволит вам перезапустить процесс, не беспокоясь о том, чтобы убить его самостоятельно, прежде чем сможете снова запустить его.