[Hulppost] Wat draait er op poort 8000? (En hoe het te stoppen)

tl; dr ...

kill -9 $ (lsof -i TCP: 8000 | grep LISTEN | awk '{print $ 2}')

- - - - -

Tijdens uw reizen bent u mogelijk een scherm tegengekomen dat er als volgt uitziet:

Wat bevindt zich op poort 8000?

Als er geen andere voor de hand liggende service wordt uitgevoerd, betekent dit waarschijnlijk dat u iets gebruikt met poort 8000 als een daemon of op de achtergrond. Er zijn veel manieren om dit te doen, maar het onderstaande commando is nuttig gebleken om precies te weten te komen wat er op een bepaalde poort draait (en het werkt op onvruchtbare AWS EC2-exemplaren!):

$ lsof -i TCP: 8000 | grep LUISTER

Zie het gedeelte "Verder lezen" hieronder voor meer informatie, maar de opdracht lsof geeft "open bestanden" weer [vandaar de naam] en de vlag -i toont netwerkverbindingen. We passeren TCP: 8000 en vervolgens grep voor records met LISTEN (dwz processen luisteren / klaar op 8000)

We zijn vooral geïnteresseerd in het nummer in de tweede kolom, de PID, omdat we dat kunnen gebruiken om het proces te beëindigen.

[Zorg ervoor dat 100% zeker is dat de PID die u denkt te willen doden inderdaad degene is die echt wil doden. Dit kan erg destructief zijn!]

$ kill -9 PID_TO_KILL

Als een wat onhandige single-banger kun je dit zelfs uitvoeren (ruil $ PORTNUM met je doelpoort):

kill -9 $ (lsof -i TCP: $ PORTNUM | grep LISTEN | awk '{print $ 2}')

Er zijn veel manieren om dit te doen (zie hier: http://stackoverflow.com/questions/3855127/find-and-kill-process-locking-port-3000-on-mac), maar deze quick-and- vuile aanpak kan iemand tijd besparen.

Extra tegoed: voorbeeld

Als u een voorbeeld van het ontgrendelen van poorten wilt doorlopen, bekijkt u deze repo of voert u de volgende opdrachten in:

$ git kloon https://github.com/valgaze/kill_port_example _tmpkill_port_example && cd _tmpkill_port_example && npm start

Bovenstaande zal de repo naar _tmpkill_port_example klonen en vervolgens een server op poort 8000 starten als een daemon (zie package.json)

Probeer vervolgens in een andere terminalsessie in dezelfde map (_tmpkill_port_example) de volgende opdracht uit te voeren om de fout 'Fout: luister EADDRINUSE ::: 8000' te zien:

$ npm voer boot_server2 uit

Vanaf hier: gebruik wat u hierboven hebt geleerd om server2 op poort 8000 te kunnen opstarten (die u kunt afsluiten met CTRL-C)

Ontsnappingsklep als je echt iets kapot maakt:

$ npm opruimen

Verder lezen

http://www.thegeekstuff.com/2012/08/lsof-command-examples