Cum pot găsi (și ucide) procese care ascultă să/mi folosesc porturile tcp? Am'm pe mac os x.
Uneori, după un accident sau un bug, mi șine aplicație este de blocare port 3000. Pot't găsi cu ajutorul ps -ef...
Atunci când faci
rails server
Am
Adresa deja în uz - bind(2) (errno va fi::EADDRINUSE)
Actualizare 2014:
Pentru a finaliza unele dintre răspunsurile de mai jos: După executarea ucide comenzi, ștergerea fișier pid-ar putea să fie necesar rm ~/mypath/myrailsapp/tmp/pid/server.pid
netstat
netstat -vanp tcp | grep 3000
-p
), folosesc lsof`sudo lsof-i tcp:3000
netstat -vanp --tcp | grep 3000
Nimic de mai sus a lucrat pentru mine. Cineva cu experienta mea ar putea încerca următoarele (a lucrat pentru mine):
Run:
lsof -i :3000 (where 3000 is your current port in use)
apoi verifica starea de raportat PID
ps ax | grep <PID>
în cele din urmă, "du-te cu el":
kill -QUIT <PID>
Această singură linie de comandă este ușor să vă amintiți:
npx ucide-port 3000
Pentru o mai puternic instrument de căutare:
npx fkill-cli
PS: folosesc terț javascript pachete. npx
vine construit cu Node.js.
Cea mai simplă soluție:
Pentru un singur port:
kill $(lsof -ti:3000) #3000 is the port to be freed
Ucide mai multe porturi, cu o singură linie de comandă:
kill $(lsof -ti:3000,3001) #3000 and 3001 are the ports to be freed
lsof -ti:3000
82500 (Process ID)
lsof -ti:3001
Optzeci și două de mii patru sute nouăzeci și nouă
lsof -ti:3001,3000
Optzeci și două de mii patru sute nouăzeci și nouă Optzeci și două de mii cinci sute
ucide $(lsof -ti:3001,3000)
Se termină atât 82499 și 82500 procese într-o singură comandă.
Puteți folosi acest lucru în pachet.json` script-uri precum:
"script": { "start": "ucide $(lsof -ti:3000,3001) && npm start" }
Pentru a forțat ucide un proces de genul asta, utilizați următoarea comandă
lsof -n -i4TCP:3000
În cazul în care 3000 este numărul de port procesul se execută la
acesta returnează identificatorul de proces(PID) și a alerga
kill -9 "PID"
Înlocuiți PID cu numărul pe care îl obține după rularea prima comanda
Una dintre modalitățile de a ucide un proces pe un port este de a folosi python library: freeport (https://pypi.python.org/pypi/freeport/0.1.9) . Odată instalat, pur și simplu:
# install freeport
pip install freeport
# Once freeport is installed, use it as follows
$ freeport 3000
Port 3000 is free. Process 16130 killed successfully
Posibile moduri de a realiza acest lucru:
sus
Comanda de sus este în mod tradițional pentru a vizualiza sistemul de utilizare a resurselor și a vedea procesele care consumă cele mai multe resurse de sistem. Top afișează o listă de procese, cu cele care folosesc cele mai multe CPU în partea de sus.
ps
Ps comandă listează procesele care rulează. Următoarea comandă listează toate procesele care rulează pe sistemul dumneavoastră:
ps -A
Ai putea, de asemenea, conducta de ieșire prin grep pentru a căuta un anumit proces, fără a utiliza orice alte comenzi. Următoarea comandă va căuta Firefox proces:
ps -A | grep firefox
Cel mai comun mod de a trece de semnale de la un program cu comanda kill.
kill PID_of_target_process
lsof
Listă cu toate fișierele deschise și procesele care le-a deschis.
lsof -i -P | grep -i "listen"
kill -9 PID
sau
lsof -i tcp:3000
Aceste două comenzi va ajuta să găsiți și de a ucide procesul server
- lsof -wni tcp:3000
- kill -9 pid