Procesų, blokuojančių 3000 prievadą "Mac" kompiuteryje, paieška (ir nutraukimas)

Kaip rasti (ir nužudyti) procesus, kurie klausosi / naudoja mano TCP prievadus? Aš naudoju Mac OS X.

Kartais, po gedimo ar kokios nors klaidos, mano rails programa užrakina 3000 prievadą. Negaliu jo rasti naudodamas ps -ef...

Atliekant

rails server

Aš gaunu

Adresas jau naudojamas - bind(2) (Errno::EADDRINUSE)

2014 m. atnaujinimas:

Norėdami papildyti kai kuriuos toliau pateiktus atsakymus: Atlikus kill komandas, gali prireikti ištrinti pid failą rm ~/mypath/myrailsapp/tmp/pids/server.pid

Sprendimas
  1. Galite pabandyti netstat

     netstat -vanp tcp | grep 3000
  2. Jei naudojate macOS El Capitan ir naujesnę operacinę sistemą (arba jei jūsų netstat nepalaiko -p), naudokite lsof.

     sudo lsof -i tcp:3000
  3. Jei naudojate Centos 7, naudokite

     netstat -vanp --tcp | grep 3000
Komentarai (14)

Galite naudoti lsof -i:3000.

Tai yra "Atvirų failų sąrašas". Tai pateikia procesų sąrašą ir nurodo, kokius failus bei prievadus jie naudoja.

Komentarai (2)
lsof -P | grep ':3000' | awk '{print $2}'

Taip gausite tik pid, išbandyta MacOS sistemoje.

Komentarai (5)