Kiểm tra tiến trình Linux
Kiểm tra listen port với netstat
netstat là một công cụ dòng lệnh có thể cung cấp thông tin về các kết nối mạng. Để liệt kê tất cả các port TCP hoặc UDP đang được lắng nghe, bao gồm các dịch vụ sử dụng các port và trạng thái socket, hãy sử dụng lệnh sau:
sudo netstat -tunlp
Các tùy chọn được sử dụng trong lệnh này có ý nghĩa như sau:
- -t– Hiển thị cổng TCP.
- -u– Hiển thị cổng UDP.
- -n– Hiển thị địa chỉ số.
- -l– Chỉ hiển thị các cổng nghe.
- -p– Hiển thị PID và tên của quá trình lắng nghe. Thông tin này chỉ được hiển thị nếu bạn chạy lệnh dưới dạng root hoặc sudo user.
Các cột quan trọng:
- Proto – Giao thức được sử dụng bởi các socket.
- Local Address – Địa chỉ IP và port mà quá trình nghe.
- PID/Program name – PID và tên của chương trình.
Kiểm tra các tiến trình hoạt động trong server
Có nhiều lệnh quản lý quy trình được sử dụng để kiểm tra quá trình đang chạy trong Ubuntu Linux. Một số lệnh được sử dụng rộng rãi nhất là top, htop và ps.
Lệnh top
lệnh trên cùng hiển thị các quy trình Linux. Chương trình hàng đầu cung cấp chế độ xem thời gian thực động của một hệ thống đang chạy. Nó có thể hiển thị thông tin tóm tắt hệ thống cũng như danh sách các quy trình hoặc luồng hiện đang được quản lý bởi nhân Linux. Các loại thông tin tóm tắt hệ thống được hiển thị và các loại, thứ tự và kích thước của thông tin được hiển thị cho các quy trình đều có thể cấu hình cho người dùng và cấu hình đó có thể được thực hiện liên tục qua các lần khởi động lại.
Ba id quan trọng nhất được hiển thị bởi lệnh trên cùng là:
- PGRP - Process Group Id: Mọi quy trình là thành viên của một nhóm quy trình duy nhất được sử dụng để phân phối tín hiệu và bởi các thiết bị đầu cuối để phân xử các yêu cầu đầu vào và đầu ra của chúng. Khi một quy trình được tạo (chia nhỏ), nó sẽ trở thành một thành viên của nhóm quy trình cha của nó. Theo quy ước, giá trị này bằng ID quy trình (xem PID) của thành viên đầu tiên của nhóm quy trình, được gọi là trưởng nhóm quy trình.
- PID - Process Id: ID quy trình duy nhất của nhiệm vụ, định kỳ kết thúc, mặc dù không bao giờ khởi động lại ở mức XNUMX. Theo thuật ngữ hạt nhân, nó là một thực thể có thể chuyển đổi được định nghĩa bởi task_struct. Giá trị này cũng có thể được sử dụng làm: ID nhóm quy trình (xem PGRP); ID phiên cho người đứng đầu phiên (xem SID); ID nhóm luồng cho trưởng nhóm luồng (xem TGID); và ID nhóm quy trình TTY cho trưởng nhóm quy trình (xem TPGID).
- PPID - Parent Process Id: ID quy trình (pid) của cha mẹ của nhiệm vụ.
Lệnh htop
Lệnh htop là một trình xem quy trình tương tác cho Hệ thống Linux Ubuntu. Htop là trình xem quy trình dựa trên ncurses dành cho Linux, tương tự như trên, nhưng cho phép bạn cuộn theo chiều dọc và chiều ngang, vì vậy bạn có thể xem tất cả các quy trình đang chạy trên hệ thống, cùng với các dòng lệnh đầy đủ của chúng, cũng như xem chúng như một cây quy trình, chọn nhiều quy trình và hành động trên tất cả chúng cùng một lúc.
Lệnh ps
lệnh ps hiển thị thông tin về các tiến trình đang hoạt động. Nó hiển thị ID quy trình (pid = PID), thiết bị đầu cuối được liên kết với quy trình (tname = TTY), thời gian CPU tích lũy ở định dạng [DD-] hh: mm: ss (time = TIME) và tên thực thi (ucmd = CMD). Lưu ý rằng đầu ra không được sắp xếp theo mặc định.
Sử dụng lệnh ps
- ps -A: Lệnh ps -A liệt kê tất cả các tiến trình đang chạy trên hệ thống.
- ps -A | less: Đối số lệnh "less" được sử dụng để giới hạn kết quả trên mỗi màn hình. Theo mặc định, có quá nhiều tiến trình được hiển thị trên màn hình và rất khó đọc cùng một lúc. Để hiển thị kết quả với số lượng ít hơn, đối số lệnh “less” được sử dụng. Lưu ý rằng khi bạn sử dụng đối số “less”, bạn sẽ phải nhấn “enter” để hiển thị danh sách tập hợp quy trình tiếp theo. Ngoài ra, nhấn q để thoát khi bạn hoàn tất.
- ps -A | grep firefox: Để tìm chi tiết quy trình của một chương trình cụ thể (trong ví dụ này là firefox), hãy sử dụng lệnh cho là grep. Lệnh sẽ chỉ tìm kiếm quy trình cụ thể.
Các ví dụ khác về việc sử dụng lệnh ps
Để xem mọi quá trình trên hệ thống sử dụng cú pháp chuẩn:
- ps -e
- ps -ef
- ps -eF
- ps -ely
Để xem mọi quá trình trên hệ thống sử dụng cú pháp BSD:
- ps axe
- ps axu
Để in một cây quá trình:
- ps -ejH
- ps axjf
Để xem mọi quy trình đang chạy dưới dạng root (ID thực và hiệu quả) ở định dạng người dùng:
- gốc ps -U gốc -u