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. Đôi khi, khi làm việc trên máy Linux, bạn có thể cần tìm hiểu những tiến trình hiện đang chạy.

Có 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 pspstree và top là những lệnh thường được sử dụng 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 [OPTIONS]

Vì lý do lịch sử và khả năng tương thích, ps chấp nhận một số loại tùy chọn khác nhau:

  • Tùy chọn kiểu UNIX, đứng trước một dấu gạch ngang.
  • Tùy chọn kiểu BSD, được sử dụng mà không có dấu gạch ngang.
  • Các tùy chọn dài GNU, đứng trước hai dấu gạch ngang.

Các loại tùy chọn khác nhau có thể được kết hợp, 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 bạn nên 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ó bất kỳ tùy chọn nào, ps sẽ in ra bốn cột thông tin cho tối thiểu hai quy 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 dán nhãn PIDTTYTIME, và CMD.

  • PID– ID quy trình. Thông thường, khi chạy lệnh ps, thông tin quan trọng nhất mà người dùng tìm kiếm là PID của tiến trình. Biết PID cho phép bạn loại bỏ một tiến trình bị trục trặc .
  • TTY – Tên của thiết bị đầu cuối điều khiển 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.

Kết quả ở 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 cùng 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ụ thể của các quá trình và các thông tin khác nhau về quá trình này, nhưng chỉ có một số ít là cần thiết trong việc sử dụng ngày-to-ngày.

ps được sử dụng thường xuyên nhất với sự kết hợp của các tùy chọn sau:

Hình thức BSD :

ps aux
  • Tùy chọn a cho ps hiển thị các tiến trình của tất cả người dùng. Chỉ các quy trình không liên kết với terminal và các quy trình của các group leader mới không được hiển thị.
  • u là viết tắt của một định dạng hướng tới người dùng cung cấp thông tin chi tiết về các quy trình.
  • Tùy chọn x chỉ thị  ps vào danh sách các tiến trình mà không có terminal kiểm soát. Đó chủ yếu là các tiến trình được bắt đầu vào thời gian khởi động và chạy ở chế độ nền .

Các thông tin lệnh hiển thị trong mười một cột dán nhãn USERPID%CPU%MEMVSZRSSSTATSTARTTTYTIME, 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 [kthreadd]
...

Chúng ta đã giải thích PIDTTYTIME và CMD nhãn. Dưới đây là giải thích về các nhãn khác:

  • USER – Người dùng chạy tiến 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 đặt thường trú của tiến trình vào bộ nhớ vật lý trên máy.
  • VSZ – Kích thước bộ nhớ ảo của tiến trình trong KiB.
  • RSS– Kích thước của bộ nhớ vật lý mà tiến trình đang sử dụng.
  • STAT– Mã trạng thái của tiến trình, chẳng hạn như Z (zombie), S (sleep) và R (running).
  • START – Thời điểm lệnh bắt đầu.

Tùy chọn f cho ps hiển thị một cái nhìn cây của các tiến trình mẹ với các tiến trình con:

ps auxf

Lệnh ps cũng cho phép bạn sắp xếp các đầu ra. Ví dụ: để sắp xếp đầu ra dựa trên việc sử dụng bộ nhớ , bạn sẽ sử dụng:

ps aux --sort=-%mem

Biểu mẫu UNIX :

ps -ef
  • Tùy chọn -e chỉ thị ps để hiển thị tất cả các tiến trình.
  • Danh sách -f định dạng đầy đủ là viết tắt của danh sách, cung cấp thông tin chi tiết về các tiến trình.

Các thông tin lệnh hiển thị trong tám cột dán nhãn UIDPIDPPIDCSTIMETIME, 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 [kthreadd]
...

Các nhãn chưa được giải thích có ý nghĩa sau:

  • UID– Tương tự như USER, người dùng chạy tiến trình.
  • PPID – ID của tiến trình mẹ.
  • C– Tương tự như %CPU, quá trình sử dụng CPU.
  • STIME– Tương tự như START thời điểm lệnh bắt đầu.

Để chỉ xem các quy trình đang chạy với tư cách một người dùng cụ thể, hãy nhập lệnh sau, trong đó hocdevops tên của người dùng là:

ps -f -U hocdevops -u hocdevops

Định dạng do người dùng xác định

Tùy chọn o cho phép bạn xác định các cột đượ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 pipeline.

Nếu bạn muốn hiển thị đầu ra của lệnh ps, mỗi trang chuyển nó đến lệnh less:

ps -ef | less

Đầu ra của lệnh ps có thể được lọc với grep . Ví dụ: để chỉ hiển thị tiến trình thuộc về người dùng root mà 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 thường được sử dụng nhất khi xử lý sự cố các vấn đề 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 tiến trình đang chạy.

Để biết thêm thông tin về ps, hãy nhập man ps thiết bị đầu cuối của bạn.

Nếu bạn có bất kỳ câu hỏi hoặc phản hồi nào, vui lòng để lại bình luận.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments