Khi làm việc trên máy Linux, đôi khi bạn có thể cần phải tìm hiểu những tiến trình nào 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 và top là những lệnh được sử dụng phổ biến nhất.

Trong bài này, chúng ta sẽ nói về lệnh pstree. Nó tương tự như ps , nhưng thay vì liệt kê các tiến trình đang chạy, nó hiển thị chúng trong một cây. Định dạng dạng cây là một cách thuận tiện hơn để hiển thị hệ thống phân cấp tiến trình và làm cho đầu ra trực quan hơn.

Cách sử dụng

Cú pháp chung cho lệnh pstree như sau:

ps [OPTIONS] [USER or PID]

Ở dạng đơn giản nhất khi được gọi mà không có bất kỳ tùy chọn hoặc đối số nào, pstree sẽ hiển thị cấu trúc cây phân cấp của tất cả các tiến trình đang chạy:

pstree
systemd─┬─VBoxService───7*[{VBoxService}]
        ├─accounts-daemon───2*[{accounts-daemon}]
        ├─2*[agetty]
        ├─atd
        ├─cron
        ├─dbus-daemon
        ├─irqbalance───{irqbalance}
        ├─2*[iscsid]
        ├─lvmetad
        ├─lxcfs───2*[{lxcfs}]
        ├─networkd-dispat───{networkd-dispat}
        ├─nginx───2*[nginx]
...

Mục trên cùng / gốc trong cây là tiến trình root của tất cả các tiến trình hệ thống. Trong ví dụ này systemd, đó là tiến trình đầu tiên bắt đầu khi khởi động.

pstree hợp nhất các nhánh giống hệt nhau bằng cách đặt chúng giữa dấu ngoặc vuông và đặt tiền tố chúng bằng một số nguyên đại diện cho số nhánh. Điều này làm cho đầu ra dễ đọc hơn và hấp dẫn trực quan hơn.

Dưới đây là một ví dụ cho thấy cách sử dụng dấu ngoặc vuông:

├─2*[agetty]

giống như:

├─agetty        
├─agetty

Để vô hiệu hóa việc hợp nhất các nhánh giống nhau, hãy sử dụng tùy chọn -c:

pstree -c

Các luồng của một tiến trình được hiển thị dưới tiến trình root và được hiển thị bằng cách sử dụng tên tiến trình bên trong dấu ngoặc nhọn. Đây là một ví dụ:

├─lxcfs───2*[{lxcfs}]

Sử dụng tùy chọn -t để hiển thị tên chủ đề đầy đủ. Nếu bạn muốn ẩn các chuỗi và chỉ hiển thị các tiến trình, hãy sử dụng tùy chọn -T này.

Thông thường, pstree hiển thị nhiều dòng đầu ra không vừa trên màn hình. Để xem kết quả đầu ra tại một thời điểm, hãy chuyển nó đến lệnh less:

pstree | less

Nếu tên người dùng được cung cấp làm đối số, pstree chỉ hiển thị các tiến trình do người dùng đó sở hữu. Ví dụ: lệnh sau sẽ chỉ hiển thị những tiến trình đã được khởi động bởi người dùng có tên “hocdevops”:

pstree hocdevops

Khi PID được chỉ định làm đối số, pstree hiển thị một cây với tiến trình đã cho làm gốc của cây. Đây là một ví dụ:

pstree 1943
sshd───bash───pstree

Để hiển thị các tiến trình cha của tiến trình đã cho, hãy sử dụng tùy chọn -s theo sau là PID tiến trình:

pstree -s 1943
systemd───sshd───sshd───bash───pstree

Hiển thị PID và PGID

Thông thường, khi chạy lệnh pstree, thông tin quan trọng nhất mà người dùng tìm kiếm là ID tiến trình. Ví dụ, biết PID cho phép bạn loại bỏ một tiến trình bị trục trặc .

Các tùy chọn -p chỉ thị pstree để hiển thị PID:

pstree -p

PID được hiển thị trong dấu ngoặc đơn sau mỗi tiến trình hoặc chuỗi.

systemd(1)─┬─VBoxService(955)─┬─{VBoxService}(956)
           │                  ├─{VBoxService}(957)
           │                  ├─{VBoxService}(958)
           │                  ├─{VBoxService}(959)
           │                  ├─{VBoxService}(960)
           │                  ├─{VBoxService}(961)
           │                  └─{VBoxService}(962)
...

Theo mặc định, pstree sắp xếp các tiến trình có cùng cha theo tên. Các tùy chọn -n cho pstree sử dụng loại số, tức là sắp xếp theo PID:

pstree -pn

ID nhóm tiến trình hoặc PGIDs là ID tiến trình của thành viên đầu tiên của nhóm tiến trình. Để xem PGID, hãy sử dụng tùy chọn -g:

pstree -g

PID cũng được hiển thị trong dấu ngoặc đơn sau mỗi tiến trình hoặc chuỗi.

systemd(1)─┬─VBoxService(954)─┬─{VBoxService}(954)
           │                  ├─{VBoxService}(954)
           │                  ├─{VBoxService}(954)
           │                  ├─{VBoxService}(954)
           │                  ├─{VBoxService}(954)
           │                  ├─{VBoxService}(954)
           │                  └─{VBoxService}(954)
...

Khi PID hoặc PGID được hiển thị, việc hợp nhất sẽ bị tắt hoàn toàn.

Hiển thị đối số dòng lệnh

Một số chương trình có thể được gọi với các tùy chọn cấu hình được chỉ định dưới dạng đối số dòng lệnh.

Theo mặc định, pstree không hiển thị cho bạn các đối số dòng lệnh cho các tiến trình đang chạy. Để xem tiến trình được bắt đầu như thế nào, hãy sử dụng lệnh cùng với tùy chọn -a:

pstree -a
...
  ├─agetty -o -p -- \\u --keep-baud 115200,38400,9600 ttyS0 vt220
  ├─agetty -o -p -- \\u --noclear tty1 linux
...

Làm nổi bật

pstree cũng cho phép bạn đánh dấu các tiến trình để trình bày trực quan tốt hơn.

Tùy chọn -h chỉ thị pstree để làm nổi bật tiến trình hiện tại và tất cả tổ tiên của nó.

pstree -h

Để đánh dấu một tiến trình cụ thể, hãy sử dụng tùy chọn -H theo sau là ID tiến trình:

pstree -H PID_NUMBER

Nếu phần đánh dấu không được hỗ trợ, lệnh sẽ thoát ra với lỗi.

Phần kết luận

Lệnh pstree hiển thị các tiến trình đang chạy dưới dạng một cấu trúc cây.

Để biết thông tin về tất cả các tùy chọn pstree có sẵn , hãy nhập man pstree terminal 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