Il summenzionato killall -9 node
, suggerito da Patrick funziona come previsto e risolve il problema, ma potresti voler leggere la parte di modifica di questa stessa risposta sul perché kill -9
potrebbe non essere il modo migliore per farlo.
Inoltre, potresti voler indirizzare un singolo processo piuttosto che uccidere ciecamente tutti i processi attivi.
In tal caso, ottenere innanzitutto l'ID processo (PID) del processo in esecuzione su quella porta (ad esempio 8888):
lsof -i tcp:8888
Questo restituirà qualcosa di simile:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 57385 You 11u IPv6 0xac745b2749fd2be3 0t0 TCP *:ddi-tcp-1 (LISTEN)
Quindi fai (ps - in realtà no . Continua a leggere di seguito):
kill -9 57385
Puoi leggere un po 'di più su questo qui .
EDIT: stavo leggendo su un argomento abbastanza correlato oggi e mi sono imbattuto in questo interessante thread sul perché non dovrei kill -9
un processo .
Generalmente, dovresti usare kill -15 prima di kill -9 per dare al processo target la possibilità di ripulire dopo se stesso. (I processi non possono catturare o ignorare SIGKILL, ma possono e spesso catturano SIGTERM.) Se non dai la possibilità al processo di completare ciò che sta facendo e ripulire, potrebbe lasciare in giro file corrotti (o altri stati) che non sarà in grado di capire una volta riavviato.
Quindi, come detto, è meglio che tu uccida il processo sopra con:
kill -15 57385
EDIT 2 : Come notato in un commento qui molte volte questo errore è una conseguenza del non uscire con garbo da un processo. Ciò significa che, un sacco di gente uscire da un comando nodo (o qualunque altro) utilizzando CTRL + Z . Il modo corretto di interrompere un processo in esecuzione è emettere il comando CTRL + C che esegue un'uscita pulita.
Uscire da un processo nel modo giusto libererà quella porta mentre si spegne. Ciò ti consentirà di riavviare il processo senza doverti preoccupare di ucciderlo da solo prima di poterlo rieseguire.