Bagaimana cara menemukan (dan membunuh) proses yang berjalan pada port tertentu? [duplikat]

30

Kemungkinan Gandakan:
Mencari proses yang menggunakan port tertentu di Linux

Saya menggunakan Ubuntu Linux 11.04. Bagaimana cara menulis ekspresi skrip shell yang akan menemukan proses berjalan pada port 4444 dan kemudian membunuh prosesnya?

Komunitas
sumber
Saya tidak berpikir ini adalah duplikat karena menanyakan bagaimana cara membunuh, tidak menemukan, proses pada port: fuser -k 9000 / tcp
Kris

Jawaban:

47

Anda dapat menggunakan lsofuntuk menemukan proses:

lsof -t -i:4444

akan mendaftar hanya pid dari proses mendengarkan pada port 4444. Anda bisa mengatakannya

kill `lsof -t -i:4444`

jika kamu berani.

Ernest Friedman-Hill
sumber
14
Memberi +1 untuk 'jika Anda berani.'
Tn. Shickadance
7

Anda menggunakan lsof:

# lsof -n | grep TCP | grep LISTEN | grep 4444

Outputnya akan seperti:

pname 16125 user 28u IPv6 4835296 TCP *:4444 (LISTEN)

Di mana kolom pertama adalah nama proses, dan kolom kedua adalah id proses. Anda kemudian mengurai output, mencari tahu apa id proses (PID) dan menggunakan killperintah untuk membunuhnya.

Pablo Santa Cruz
sumber
1
Saya belum pernah mendengar tentang itu sebelumnya. Melihat halaman manual, tampaknya sangat berguna. Terima kasih!
semua yang ada di linux adalah file dan lsof memungkinkan Anda menemukan file jadi ... yeah, sangat berguna
jcollum
2

Atau Anda dapat menggunakan netstat -apjika lsoftidak tersedia di sistem Anda (karena tidak pada sistem busybox saya bekerja dengan teratur).

DaveRandom
sumber
panggilan bagus, saya bertanya-tanya mengapa ini tidak berfungsi pada gambar docker yang diturunkan dari busybox yang sedang saya kerjakan
jcollum
2
kill -9 `netstat -lanp --protocol=inet | grep 4444 | awk -F" " '{print $7}' | awk -F"/" '{print $1}'`

Menggunakan netstat untuk mendaftar mendengarkan soket INET dengan port numerik dan proses induk. Filter untuk string 4444, mengeluarkan kolom 7 (pid / nama proses) dan membaginya dengan "/" untuk mendapatkan pid. Melewati itu untuk membunuh perintah.

Arek B.
sumber
2
Saya akan merekomendasikan melawan -9. Itu tidak memungkinkan pembersihan, dan beberapa aplikasi internet lebih mungkin memiliki sumber daya yang perlu ditutup secara bersih.
Rich Homolka