Hướng dẫn lệnh pstree Linux cho người mới bắt đầu (8 ví dụ)

theanh

Administrator
Nhân viên
Vì mọi tiến trình (trừ tiến trình đầu tiên) trong hệ thống Linux đều có tiến trình cha, nên đôi khi mọi thứ sẽ dễ hiểu hơn nếu tất cả các tiến trình được hiển thị theo cấu trúc cây. Bạn sẽ vui mừng khi biết rằng có một tiện ích dòng lệnh - được gọi là pstree - hiển thị cây các tiến trình.

Trong hướng dẫn này, chúng ta sẽ thảo luận về những điều cơ bản của lệnh pstree bằng một số ví dụ dễ hiểu. Nhưng trước khi thực hiện, cần lưu ý rằng tất cả các ví dụ ở đây đều đã được thử nghiệm trên máy Ubuntu 22.04 LTS.

Lệnh pstree của Linux​

Như đã đề cập ở phần đầu, lệnh pstree hiển thị một cây các quy trình. Cú pháp của lệnh này như sau:
Mã:
pstree [tùy chọn]
Và đây là nội dung trang hướng dẫn của công cụ này nói về lệnh này:
Mã:
pstree hiển thị các quy trình đang chạy dưới dạng cây. Cây này có gốc là
 pid hoặc init nếu bỏ qua pid. Nếu tên người dùng được chỉ định, tất cả
 cây quy trình có gốc tại các quy trình do người dùng đó sở hữu sẽ được hiển thị.

 pstree hợp nhất trực quan các nhánh giống hệt nhau bằng cách đặt chúng trong dấu ngoặc vuông
 và thêm tiền tố là số lần lặp lại, ví dụ:

 init-+-getty
 |-getty
 |-getty
 `-getty

 trở thành

 init---4*[getty]

 Các luồng con của một quy trình được tìm thấy trong quy trình cha và được
 hiển thị với tên quy trình trong dấu ngoặc nhọn, ví dụ:

 icecast2---13*[{icecast2}]

 Nếu pstree được gọi là pstree.x11 thì nó sẽ nhắc người dùng ở
 cuối dòng nhấn return và sẽ không trả về cho đến khi điều đó xảy ra?
 đã viết. Điều này hữu ích khi pstree được chạy trong xterminal.

 Một số tham số hạt nhân hoặc gắn kết, chẳng hạn như tùy chọn hidepid cho
 procfs, sẽ ẩn thông tin cho một số quy trình. Trong những tình huống này
 pstree sẽ cố gắng xây dựng cây mà không có thông tin này, hiển thị
 tên quy trình dưới dạng dấu chấm hỏi.
Sau đây là một số ví dụ theo kiểu Hỏi & Đáp sẽ giúp bạn hiểu rõ hơn về cách lệnh pstree hoạt động:

Câu hỏi 1. Làm thế nào để sử dụng lệnh pstree?​

Cách sử dụng cơ bản rất đơn giản: tất cả những gì bạn phải làm là thực thi 'pstree' mà không có bất kỳ tùy chọn nào.
Mã:
pstree


Vì vậy, bạn có thể thấy đây là cách pstree tạo ra thông tin liên quan đến quy trình trong đầu ra.

Câu 2. Làm thế nào để pstree bao gồm cả các đối số dòng lệnh trong đầu ra?​

Bạn có thể thực hiện việc này bằng cách sử dụng tùy chọn dòng lệnh -a.
Mã:
pstree -a


Vì vậy, bạn có thể thấy lệnh pstree hiện cũng hiển thị các tùy chọn dòng lệnh cho một số quy trình.

Câu hỏi 3. Làm thế nào để buộc pstree mở rộng các cây con giống hệt nhau trong đầu ra?​

Theo mặc định, lệnh pstree sẽ hợp nhất các nhánh giống hệt nhau bằng cách đặt chúng trong dấu ngoặc vuông và thêm tiền tố là số lần lặp lại. Tương tự như thế này:



Tuy nhiên, nếu muốn, bạn có thể buộc công cụ mở rộng các cây giống hệt nhau, bạn có thể thực hiện điều này bằng tùy chọn dòng lệnh -c.
Mã:
pstree -c

Câu hỏi 4. Làm thế nào để pstree làm nổi bật một quy trình cụ thể?​

Trong trường hợp bạn muốn công cụ làm nổi bật một quy trình cụ thể trong đầu ra, hãy sử dụng tùy chọn dòng lệnh -H.
Mã:
pstree -H [PID]
Trong đó PID là ID của quy trình bạn muốn làm nổi bật. Ví dụ, tôi đã làm nổi bật tiến trình firefox trên hệ thống của mình bằng lệnh sau:
Mã:
pstree -H 3124


Vì vậy, bạn có thể thấy tên 'firefox' được làm nổi bật một chút so với các tên khác.

Câu hỏi 5. Làm thế nào để pstree hiển thị ID nhóm tiến trình trong đầu ra?​

Đối với điều này, hãy sử dụng tùy chọn dòng lệnh -g.
Mã:
pstree -g


Vì vậy, bạn có thể thấy rằng ID nhóm tiến trình được hiển thị dưới dạng số thập phân trong dấu ngoặc đơn sau mỗi tên tiến trình.

Câu hỏi 6. Làm thế nào để sắp xếp pstree theo PID?​

Theo mặc định, pstree sắp xếp các quy trình có cùng tổ tiên theo tên. Tuy nhiên, nếu muốn, bạn cũng có thể sắp xếp pstree theo PID, một việc bạn có thể làm bằng tùy chọn dòng lệnh -n.
Mã:
pstree -n
Lưu ý rằng kiểu sắp xếp này cũng được gọi là sắp xếp số.

Câu hỏi 7. Làm thế nào để pstree hiển thị cây quy trình cụ thể cho một người dùng?​

Nếu bạn muốn pstree hiển thị tất cả các cây quy trình có gốc tại các quy trình do một người dùng cụ thể sở hữu, thì tất cả những gì bạn phải làm là truyền tên của người dùng đó làm đầu vào cho lệnh.

Ví dụ:
Mã:
pstree himanshu
Vì vậy, trong trường hợp này, đầu ra sau được tạo ra trên hệ thống của tôi:




Câu hỏi 8. Làm thế nào để hạn chế Pstree cho một quy trình cụ thể?​

Nếu bạn muốn pstree chỉ hiển thị thông tin cha và con cho một quy trình cụ thể, hãy sử dụng tùy chọn -s.
Mã:
pstree -s [PID]
Ví dụ, tôi muốn giới hạn đầu ra của Pstree chỉ cho quy trình firefox trên hệ thống của mình, vì vậy tôi đã thực hiện lệnh sau:
Mã:
pstree -s 3124
Và đây là đầu ra mà công cụ hiển thị:


Kết luận​

Tùy thuộc vào loại công việc bạn làm, lệnh pstree có thể hữu ích rất nhiều. Trong hướng dẫn này, chúng tôi đã thảo luận về một số tùy chọn dòng lệnh chính mà công cụ này cung cấp. Để biết thêm thông tin, hãy truy cập trang hướng dẫn.
 
Back
Bên trên