Bạn có chắc chắn muốn xóa bài viết này không ?
Bạn có chắc chắn muốn xóa bình luận này không ?
Linux - Tìm và đóng ứng dụng đang chiếm cổng của mình
Linux - Tìm và đóng ứng dụng đang chiếm cổng của mình
Series Today I Learn trong vòng 100 ngày thử thách bản thân - ngày 13. Mỗi ngày 1 câu hỏi, 1 câu trả lời (ngắn nhất có thể). Mời cả nhà cũng tham gia. Tag đề nghị: #100daysTIL.
Bài toán: Chạy app bị báo cổng 3000 bị chiếm, cần tìm ứng dụng nào đang chiếm cổng 3000 này để đóng nó đi. Lúc đầu định restart lại máy vì search lệnh 1 lúc không được. May quá có cậu bạn khăng khăng bắt phải tìm lệnh, chạy lệnh, rồi note lại cho nhớ.
Thực hiện:
Chạy lệnh sau để biết ứng dụng nào đang chiếm cổng 3000
lsof -i tcp:3000
Ứng dụng này sẽ cố số PID là xXxXx chẳng hạn. Chạy lệnh tiếp theo để ngắt nó đi. Thế là xong
kill -9 xXxXx
Ghi chú:
lsof
là lệnh gì?
lsof
viết tắt của 2 lệnh:
- ls, một lần nữa là viết tắt của lsist.
- of, một lần nữa là viết tắt của open files.
Đây là lệnh giúp liệt kê thông tin về các files nào đó đang được chạy trong rất nhiều tiến trình khác nhau. Trong thế giới của linux, mọi thứ đều là files (pipes, sockets, thư mục, thiết bị, v.v.v). Vì vậy, khi sử dụng lsof, ta có thể lấy được thông tin về bất kỳ "files" nào đang được mở (chạy).
Kết quả chạy lsof
là gì?
Trông giống như bên dưới đây, tất nhiên là sẽ dài hơn rất nhiều. Dài bao nhiêu phụ thuộc máy ta đang có bao nhiêu tiến trình đang thực thi.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 16274 ngminhtrung 13u IPv6 199365 0t0 TCP *:3000 (LISTEN)
Các cột hiện ra bao gồm: COMMAND
, PID
, USER
, FD
, TYPE
, DEVICE
, SIZE/OFF
, NODE
, NAME
. Trong các cột này, cột FD
và TYPE
cần thêm lưu ý cho các ký hiệu như:
- Với cột
FD
(File Descriptor):-
cwd
= thư mục hiện hành (current working d*irectory) -
rtd
= root directory -
txt
= program text (code và data) -
mem
= memory-mapped file - 1u thực chất là mô tả về file, theo sau nó là u, r, w. r là quyền đọc (read), w là quyền viết (write), và u là quyền đọc và viết.
-
- Với cột
TYPE
- loại của files: DIR (thư mục), REG (file thông thường), CHR (file ký tự đặc biệt), FIFO (First In First Out).
Xem tiến trình chạy trên 1 cổng cụ thể nào đó
lsof -i TCP:số_cổng_cần_tra
hoặc trên 1 dải các cổng, ví dụ từ 1 đến 1024
lsof -i TCP:1-1024
ngminhtrung 06-02-2018






