Trong Linux, một phiên bản đang chạy của một chương trình được gọi là tiến trình. Thỉnh thoảng, khi làm việc trên máy Linux, bạn có thể cần tìm hiểu các quy trình hiện đang chạy.
Có một số lệnh mà bạn có thể sử dụng để tìm thông tin về các tiến trình đang chạy, với
ps
,
pstree
và
top
là các lệnh được sử dụng phổ biến nhất.
Bài viết này giải thích cách sử dụng lệnh
ps
để liệt kê các quy trình hiện đang chạy và
hiển thị thông tin về các quy trình đó.
Cách sử dụng lệnh
ps
Cú pháp chung cho lệnh
ps
như sau:
ps
Vì lý do lịch sử và tương thích, lệnh
ps
chấp nhận một số loại tùy chọn khác nhau:
- Các tùy chọn kiểu UNIX, trước một tùy chọn kiểu dash.BSD, được sử dụng mà không có tùy chọn dài dash.GNU, trước hai dấu gạch ngang.
Các loại tùy chọn khác nhau có thể được trộn lẫn, nhưng trong một số trường hợp cụ thể, xung đột có thể xuất hiện, vì vậy tốt nhất là gắn bó với một loại tùy chọn.
Các tùy chọn BSD và UNIX có thể được nhóm lại.
Ở dạng đơn giản nhất, khi được sử dụng mà không có tùy chọn nào,
ps
sẽ in bốn cột thông tin cho tối thiểu hai tiến trình đang chạy trong
trình bao hiện tại, chính trình bao và các quy trình chạy trong trình bao khi lệnh được gọi.
ps
Đầu ra bao gồm thông tin về shell [
bash
] và tiến trình đang chạy trong shell này [
ps
, lệnh mà bạn đã nhập]:
PID TTY TIME CMD 1809 pts/0 00:00:00 bash 2043 pts/0 00:00:00 ps
Bốn cột được gắn nhãn
PID
,
TTY
,
TIME
và
CMD
.
-
PID
- ID tiến trình. Thông thường, khi chạy lệnhps
, thông tin quan trọng nhất mà người dùng đang tìm kiếm là quá trình PID. Biết được PID cho phép bạn tiêu diệt một quá trình trục trặc.TTY
- Tên của thiết bị đầu cuối kiểm soát cho quá trình.TIME
- Thời gian CPU tích lũy của quá trình, được hiển thị bằng phút và giây.CMD
- Tên của lệnh đã được sử dụng để bắt đầu quá trình.
Đầu ra ở trên không hữu ích lắm vì nó không chứa nhiều thông tin. Sức mạnh thực sự của lệnh
ps
xuất hiện khi được khởi chạy với các tùy chọn bổ sung.
Lệnh
ps
chấp nhận một số lượng lớn các tùy chọn có thể được sử dụng để hiển thị một nhóm các quy trình cụ thể và thông tin khác nhau về quy trình, nhưng chỉ một số ít là cần thiết trong sử dụng hàng ngày.
ps
được sử dụng thường xuyên nhất với sự kết hợp các tùy chọn sau:
Mẫu BSD:
ps aux
- Tùy chọn cho
ps
hiển thị các quy trình của tất cả người dùng. Chỉ các quy trình không liên quan đến thiết bị đầu cuối và quy trình của các nhà lãnh đạo nhóm không được hiển thị.u
là viết tắt của định dạng hướng người dùng cung cấp thông tin chi tiết về các quy trình. Tùy chọnx
hướng dẫnps
liệt kê các quy trình mà không cần thiết bị đầu cuối kiểm soát. Đó là những quá trình chủ yếu được bắt đầu vào thời gian khởi động và chạy trong nền.
Lệnh hiển thị thông tin trong mười một cột có nhãn
USER
,
PID
,
%CPU
,
%MEM
,
VSZ
,
RSS
,
STAT
,
START
,
TTY
,
TIME
và
CMD
.
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.8 77616 8604 ? Ss 19:47 0:01 /sbin/init root 2 0.0 0.0 0 0 ? S 19:47 0:00…
Chúng tôi đã giải thích các nhãn
PID
,
TTY
,
TIME
và
CMD
. Dưới đây là một lời giải thích của các nhãn khác:
-
USER
- Người dùng chạy quy trình.%CPU
- Việc sử dụng cpu của quá trình.%MEM
- Tỷ lệ phần trăm kích thước cài đặt thường trú của quy trình vào bộ nhớ vật lý trên máy.VSZ
- Kích thước bộ nhớ ảo của quá trình trong KiB.RSS
- Kích thước của bộ nhớ vật lý mà quá trình đang sử dụng.STAT
- Mã trạng thái quá trình, chẳng hạn nhưZ
[zombie],S
[ngủ] vàR
[đang chạy].START
- Thời điểm lệnh bắt đầu.
Tùy chọn
f
yêu cầu
ps
hiển thị chế độ xem dạng cây của các tiến trình cha mẹ sang con:
ps auxf
Lệnh
ps
cũng cho phép bạn sắp xếp đầu ra. Ví dụ: để sắp xếp đầu ra dựa trên mức sử dụng bộ nhớ, bạn sẽ sử dụng:
ps aux --sort=-%mem
Hình thức UNIX:
ps -ef
- Tùy chọn
-e
hướng dẫnps
hiển thị tất cả các quy trình.-f
là danh sách định dạng đầy đủ, cung cấp thông tin chi tiết về các quy trình.
Lệnh hiển thị thông tin trong tám cột có nhãn
UID
,
PID
,
PPID
,
C
,
STIME
,
TIME
và
CMD
.
UID PID PPID C STIME TTY TIME CMD root 1 0 0 19:47 ? 00:00:01 /sbin/init root 2 0 0 19:47 ? 00:00:00…
Các nhãn chưa được giải thích có ý nghĩa như sau:
-
UID
- Giống nhưUSER
, người dùng chạy quy trình.PPID
- ID của quy trình cha.C
- Giống như%CPU
, quá trình sử dụng CPU.STIME
- Tương tựSTART
, thời điểm lệnh bắt đầu.
Để chỉ xem các quy trình đang
chạy như một người dùng cụ thể, hãy nhập lệnh sau, trong đó
linuxize
là tên của người dùng:
ps -f -U linuxize -u linuxize
Định dạng do người dùng xác định
Tùy chọn
o
cho phép bạn chỉ định cột nào được hiển thị khi chạy lệnh
ps
.
Ví dụ, để chỉ in thông tin về
PID
và
COMMAND
, bạn sẽ chạy một trong các lệnh sau:
ps -efo pid, comm
ps auxo pid, comm
Sử dụng
ps
với các lệnh khác
ps
có thể được sử dụng kết hợp với
các lệnh khác thông qua đường ống.
ps -ef | less
Đầu ra của lệnh
ps
có thể được lọc bằng
grep
. Ví dụ: để chỉ hiển thị quá trình thuộc về người dùng root bạn sẽ chạy:
ps -ef | grep root
Phần kết luận
Lệnh
ps
là một trong những lệnh được sử dụng phổ biến nhất khi khắc phục sự cố trên các hệ thống Linux. Nó có nhiều tùy chọn, nhưng thông thường, hầu hết người dùng đang sử dụng
ps aux
hoặc
ps -ef
để thu thập thông tin về các quy trình đang
chạy.
Để biết thêm thông tin về
ps
, hãy nhập
man ps
vào terminal của bạn.
thiết bị đầu cuối ps