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

Minh-Trung Nguyễn 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

Minh-Trung Nguyễn

58 bài viết.
72 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
44 15
Đăng lại một bài đã viết từ cách đây mấy tháng. Chủ đề này đã có không ít, nhưng chẳng hiểu sao lượng bài tự viết của dân lập trình người Việt ta v...
Minh-Trung Nguyễn viết 3 tháng trước
44 15
White
27 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...
Minh-Trung Nguyễn viết 7 tháng trước
27 5
White
16 4
Về bước tìm và xử lý dữ liệu của Việt Nam phục vụ Data Visualization nền web Làm việc với D3js được nửa năm, một trong những điều bận lòng là chưa...
Minh-Trung Nguyễn viết 2 tháng trước
16 4
Bài viết liên quan
White
2 1
Javascript inititalValue trong reduce() có quan trọng không? Day 41: Đọc code mẫu về hàm reduce() trong (Link), thấy hàm reduce() khá "đơn giản"....
Minh-Trung Nguyễn viết 3 tháng trước
2 1
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...
Minh-Trung Nguyễn viết 5 tháng trước
2 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

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


White
{{userFollowed ? 'Following' : 'Follow'}}
58 bài viết.
72 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á!