Вышеупомянутое 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, которая выполняет чистый выход.
Правильный выход из процесса освободит этот порт при выключении. Это позволит вам перезапустить процесс, не беспокоясь о том, чтобы убить его самостоятельно, прежде чем сможете снова запустить его.