Wyżej wspomniane killall -9 node
, sugerowane przez Patricka, działa zgodnie z oczekiwaniami i rozwiązuje problem, ale możesz przeczytać część edycyjną tej odpowiedzi na pytanie, dlaczegokill -9
może nie być najlepszym sposobem na zrobienie tego.
Ponadto możesz kierować jeden proces, a nie ślepo zabijać wszystkich aktywne procesy.
W takim przypadku najpierw uzyskaj identyfikator procesu (PID) procesu uruchomionego na tym porcie (powiedzmy 8888):
lsof -i tcp:8888
Zwróci to coś w rodzaju:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 57385 You 11u IPv6 0xac745b2749fd2be3 0t0 TCP *:ddi-tcp-1 (LISTEN)
Następnie po prostu zrób (ps - właściwie nie . Proszę czytaj dalej poniżej):
kill -9 57385
Możesz przeczytać więcej na ten temat tutaj .
EDYCJA: Czytałem dziś dość pokrewny temat i natknąłem się na ten interesujący wątek, dlaczego nie powinienem być kill -9
procesem .
Ogólnie rzecz biorąc, powinieneś użyć kill -15 przed kill -9, aby proces docelowy miał szansę oczyścić się po sobie. (Procesy nie mogą złapać ani zignorować SIGKILL, ale mogą i często łapią SIGTERM.) Jeśli nie dasz temu procesowi szansy na ukończenie tego, co robi i wyczyszczenia, może pozostawić uszkodzone pliki (lub inny stan) w pobliżu którego nie będzie w stanie zrozumieć po ponownym uruchomieniu.
Jak już wspomniano, lepiej zabić powyższy proces za pomocą:
kill -15 57385
EDYCJA 2 : Jak zauważono w komentarzu tutaj wielokrotnie, ten błąd jest konsekwencją nie opuszczenia procesu z gracją. Oznacza to, że wiele osób zakończyć polecenie węzła (lub innych) za pomocą CTRL + Z . Prawidłowym sposobem zatrzymania uruchomionego procesu jest wydanie polecenia CTRL + C, które wykonuje czyste wyjście.
Właściwe wyjście z procesu zwolni ten port podczas zamykania. Pozwoli to na ponowne uruchomienie procesu bez kłopotania się z jego zabiciem, zanim będzie można go ponownie uruchomić.