Linux - Tìm và đóng ứng dụng đang chiếm cổng của mình
TIL
499
@100daysTIL
43
White

ngminhtrung viết ngày 06/02/2018

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 FDTYPE 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

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

ngminhtrung

31 bài viết.
15 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
25 5
Ghi chú: Tiêu đề hoàn toàn mang tính câu view. Bài copy từ blog của tác giả :) Tại sao lại có bài viết này? Một ngày đẹp giời tôi cần kiểm t...
ngminhtrung viết 2 tháng trước
25 5
White
4 11
Nói thực, tôi cũng không biết gì về (Link) cho đến hôm bị cô bạn (Linh Ngô) đè ra cài ngấu nghiến trên máy và bảo cái này là "bắt buộc" nếu dùng Ma...
ngminhtrung viết 2 tháng trước
4 11
White
4 0
Vẽ Spirograph bằng D3.js Chắc hồi trẻ con ai cũng đã từng một lần nghịch 1 cái thước "sáng tạo" tên là "Spirograph" (/ˈspīrəˌɡraf/). Khi ấy ta đặt...
ngminhtrung viết 1 tháng trước
4 0
Bài viết liên quan
White
2 0
D3.js Biểu diễn dữ liệu dạng tree bằng việc trải nó ra trên bản đồ Series Today I Learn trong vòng 100 ngày thử thách bản thân ngày 15. Mỗi ngày 1...
ngminhtrung viết 17 ngày trước
2 0
White
18 1
Toán tử XOR có tính chất: + A XOR A = 0 + 0 XOR A = A Với tính chất này, có thể cài đặt bài toán sau với độ phức tạp O(N) về runtime, và với O(1)...
kiennt viết hơn 1 năm trước
18 1
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
31 bài viết.
15 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!