Linux - Tìm và đóng ứng dụng đang chiếm cổng của mình
TIL
635
@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.
79 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
46 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 7 tháng trước
46 15
White
28 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 11 tháng trước
28 5
White
17 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 7 tháng trước
17 4
Bài viết liên quan
White
0 2
fCC: Technical Documentation Page note So I have finished the HTML part of this exercise and I want to come here to lament about the lengthy HTML ...
HungHayHo viết 5 tháng trước
0 2
White
20 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 2 năm trước
20 1
{{like_count}}

kipalog

{{ comment_count }}

bình luận

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


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