Quản lý các tiến trình hệ thống: ps
, top
, htop
1. Lệnh ps
— cái nhìn tĩnh về các quy trình
Nếu Linux là một nhà hàng, thì quy trình sẽ là đầu bếp trong nhà bếp. Đây là phiên bản thực thi của một chương trình, tồn tại trong bộ nhớ. Khi bạn chạy một ứng dụng hoặc tập tin thực thi từ dòng lệnh, một quy trình được tạo ra, sau đó thực hiện các nhiệm vụ của mình cho đến khi hoàn tất.
Từ góc độ lập trình, các quy trình được quản lý bởi nhân Linux, và mỗi quy trình có một mã định danh duy nhất — PID (Process ID).
Lệnh ps
(process status) — là lệnh cơ bản để xem danh sách các quy trình. Nó cung cấp một snapshot tĩnh của các quy trình hiện tại trong hệ thống. Sử dụng ps
, bạn có thể nhận thông tin về các quy trình đang chạy: ID của chúng, chủ sở hữu, dòng lệnh, tài nguyên đã sử dụng.
Cú pháp cơ bản
Đây là cách lệnh cơ bản trông như thế nào:
ps
Điều này sẽ hiển thị các quy trình đang chạy trong terminal hiện tại.
Nhưng như vậy thì chán quá! Hãy thêm chút gia vị nhé:
ps aux
Ở đây:
a
— hiển thị các quy trình của người dùng khác.u
— thêm định dạng dễ đọc hơn.x
— bao gồm các quy trình không liên kết với terminal.
Ví dụ đầu ra:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 22556 1044 ? Ss 12:34 0:01 /sbin/init
student 2345 0.1 0.2 34567 2048 pts/0 S+ 12:35 0:02 bash
student 4567 0.3 0.5 56789 5144 pts/0 R+ 12:36 0:03 ps aux
- USER: người dùng đã khởi chạy quy trình.
- PID: mã định danh quy trình.
- %CPU: phần trăm sử dụng CPU.
- %MEM: phần trăm sử dụng bộ nhớ.
- COMMAND: lệnh khởi chạy quy trình.
Các tùy chọn nâng cao
Xem cấu trúc cây của các quy trình:
ps -ejH
Điều này sẽ giúp bạn hiểu được quy trình nào là "con" của các quy trình khác.
Lọc theo PID:
ps -p 1234
Nơi
1234
là PID của bạn. Hiển thị chỉ quy trình được chỉ định.Hiển thị tất cả các quy trình cùng với dòng lệnh đầy đủ:
ps -ef
2. Lệnh top
— Giám sát quy trình động
top
giống như TV cho các quy trình. Bạn có thể theo dõi cách các quy trình thay đổi theo thời gian thực. Nếu bạn đang chạy một server hoặc máy tính của bạn bắt đầu "bị chậm", top
chính là người bạn tốt nhất của bạn. Thông qua nó, bạn sẽ thấy những quy trình nào sử dụng nhiều CPU và bộ nhớ nhất.
Những điều cơ bản khi sử dụng
Chỉ cần nhập trong terminal:
top
Ví dụ kết quả:
- Dòng trên cùng hiển thị "tải" của hệ thống.
- Phần giữa báo cáo về các nhiệm vụ (tổng cộng, hoạt động, đang ngủ, zombie).
- Phần dưới cùng dành riêng cho bộ nhớ.
- Khối dưới cùng là danh sách các quy trình, nơi có rất nhiều thông tin hữu ích, bao gồm PID, USER, %CPU và COMMAND.
Điều hướng trong top
- Nhấn
k
để kết thúc quy trình. Nhập PID. - Nhấn
P
để sắp xếp các quy trình theo CPU. - Nhấn
M
để sắp xếp theo sử dụng bộ nhớ. - Nhấn
q
để thoát.
3. Công cụ htop
— giao diện tiện lợi
Nếu top
có vẻ quá "thô sơ" với bạn, thì hãy chào đón htop
. Đây là giao diện trực quan để giám sát quy trình. Nó có màu sắc, hỗ trợ chuột và dễ hiểu.
Cài đặt
Nếu htop
chưa được cài đặt, hãy thêm nó:
sudo apt-get install htop # Đối với các bản phân phối dựa trên Debian
sudo yum install htop # Đối với các bản phân phối dựa trên RedHat
Khởi chạy
Để khởi chạy htop
, chỉ cần nhập:
htop
Ví dụ giao diện:
Ưu điểm của htop
:
- Khả năng cuộn danh sách quy trình.
- Tô sáng bằng màu sắc cho CPU, bộ nhớ, swap.
- Các phím tiện lợi để kết thúc quy trình (ví dụ:
F9
).
4. Bài tập thực hành
Bài 1: Tìm tiến trình "tham lam" nhất
- Mở
top
hoặchtop
. - Sắp xếp các tiến trình theo CPU và tìm PID của nó.
Bài 2: Kết thúc tiến trình
- Sử dụng
kill
để "xử lý" tiến trình:kill <PID>
Bài 3: Phân tích tiến trình
- Sử dụng
ps
để phân tích PID của tiến trình:ps -p <PID> -o pid,user,%cpu,%mem,cmd
Những điều cần chú ý và khuyến nghị
- Đừng giết các tiến trình nếu bạn không chắc chắn rằng chúng không quan trọng với hệ thống. Ví dụ, tiến trình có PID 1 — đó là init, nền tảng của hệ điều hành.
- Công cụ
htop
cần được cài đặt riêng nếu chưa có. Nếu lệnh không hoạt động, hãy kiểm tra cài đặt. - Hãy chú ý đến quyền hạn. Kết thúc các tiến trình được chạy dưới tên người dùng khác có thể yêu cầu quyền admin.
Thực hành sẽ giúp bạn thấy rằng những công cụ này làm công việc với Linux trở nên linh hoạt và trực quan vô cùng. Bây giờ bạn là ông trùm của các tiến trình rồi đó!
GO TO FULL VERSION