Làm cách nào để tìm quá trình (và giết) chạy trên một cổng nhất định? [bản sao]


30

Có thể trùng lặp:
Tìm quá trình đang sử dụng một cổng nhất định trong Linux

Tôi đang sử dụng Ubuntu Linux 11.04. Làm thế nào để tôi viết một biểu thức kịch bản shell sẽ tìm thấy quá trình đang chạy trên cổng 4444 và sau đó giết tiến trình?


Tôi không nghĩ đây là một bản sao vì nó đang hỏi làm thế nào để giết, không tìm thấy, quá trình trên cổng: fuser -k 9000 / tcp
Kris

Câu trả lời:


47

Bạn có thể sử dụng lsofđể tìm quá trình:

lsof -t -i:4444

sẽ chỉ liệt kê pid của quá trình lắng nghe trên cổng 4444. Bạn chỉ có thể nói

kill `lsof -t -i:4444`

nếu bạn dũng cảm


14
+1 cho 'nếu bạn dũng cảm.'
Ông Shickadance

7

Bạn sử dụng lsof:

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

Đầu ra sẽ giống như:

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

Trong đó cột đầu tiên là tên quy trình và cột thứ hai là id quá trình. Sau đó, bạn phân tích đầu ra, tìm ra id quá trình (PID) là gì và sử dụng killlệnh để tiêu diệt nó.


1
Tôi chưa bao giờ nghe nói về lsof trước đây. Nhìn vào trang người đàn ông, nó dường như vô cùng hữu ích. Cảm ơn!

mọi thứ trong linux là một tập tin và lsof cho phép bạn tìm các tập tin vì vậy ... vâng, rất hữu ích
jcollum

2

Ngoài ra, bạn có thể sử dụng netstat -apnếu lsofkhông có sẵn trên hệ thống của bạn (vì nó không có trên hệ thống busybox tôi thường xuyên làm việc).


cuộc gọi tốt, tôi đã tự hỏi tại sao điều này không hoạt động trên một hình ảnh docker có nguồn gốc bận rộn mà tôi đang làm việc
jcollum

2
kill -9 `netstat -lanp --protocol=inet | grep 4444 | awk -F" " '{print $7}' | awk -F"/" '{print $1}'`

Sử dụng netstat để liệt kê các socket INET đang nghe với các cổng số và các tiến trình cha. Các bộ lọc cho chuỗi 4444, lấy ra cột thứ 7 (tên pid / process) và tiếp tục phân tách nó bằng "/" để lấy pid. Vượt qua đó để giết lệnh.


2
Tôi khuyên bạn nên chống lại kill -9. Nó không cho phép dọn dẹp và một số ứng dụng internet có nhiều khả năng có các tài nguyên cần được tắt sạch.
Rich Homolka
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.