Hiển thị tất cả các tiến trình con của một tiến trình cha trong Linux sử dụng pstree và ps
Giới thiệu
Có hai công cụ chính trong Linux để hiển thị các tiến trình con của một tiến trình cha: pstree và ps. Mỗi công cụ có những ưu và nhược điểm riêng, và lựa chọn công cụ nào tốt nhất cho bạn sẽ phụ thuộc vào nhu cầu cụ thể của bạn.

Cú pháp.
Lệnh pstree hiển thị cây tiến trình dưới dạng đồ thị. Để xem tất cả các tiến trình con của một tiến trình cha, bạn cần biết PID (Process ID) của tiến trình cha và chạy lệnh sau:
pstree -p <PID>Trong đó, <PID> là Process ID của tiến trình cha.
Lệnh ps cung cấp thông tin về các tiến trình hiện tại. Để xem tất cả các tiến trình con của một tiến trình cha, bạn cần biết PID của tiến trình cha và chạy lệnh sau:
ps -o pid,ppid,cmd --ppid <PID>Trong đó, <PID> là Process ID của tiến trình cha. Lệnh trên sẽ hiển thị PID, PPID (Parent Process ID) và lệnh đã khởi chạy tiến trình cho tất cả các tiến trình con của tiến trình cha.
Sử dụng pstree
pstree là một tiện ích dòng lệnh hiển thị các tiến trình đang chạy dưới dạng cây. Nó rất hữu ích để trực quan hóa cấu trúc phân cấp của các tiến trình và xác định các tiến trình con của một tiến trình cha cụ thể.
Để hiển thị tất cả các tiến trình con của một tiến trình cha có ID là 1234, hãy sử dụng lệnh sau:
pstree 1234Bạn có thể sử dụng các tùy chọn khác nhau với pstree để tùy chỉnh đầu ra. Ví dụ: để hiển thị ID tiến trình (PID) cho mỗi tiến trình, hãy sử dụng tùy chọn -p:
pstree -p 1234Sử dụng ps
ps là một tiện ích dòng lệnh linh hoạt hơn để hiển thị thông tin về các tiến trình đang chạy. Nó có thể được sử dụng để lọc các tiến trình theo nhiều tiêu chí khác nhau, bao gồm ID tiến trình, tên tiến trình và trạng thái tiến trình.
Để hiển thị tất cả các tiến trình con của một tiến trình cha có PID là 1234, hãy sử dụng lệnh sau:
ps -o pid,ppid,command | grep 1234 | awk '{print $2}' | xargs ps -o pid,commandLệnh này đầu tiên sử dụng ps để hiển thị danh sách tất cả các tiến trình cùng với PID, PPID (ID tiến trình cha) và lệnh của chúng. Sau đó, nó sử dụng grep để lọc danh sách cho các tiến trình có PPID là 1234. Tiếp theo, nó sử dụng awk để trích xuất PID của mỗi tiến trình con. Cuối cùng, nó sử dụng ps một lần nữa để hiển thị lệnh cho mỗi PID con.
Lựa chọn công cụ nào phù hợp
Nếu bạn chỉ cần có một cái nhìn tổng quan nhanh về cấu trúc phân cấp của các tiến trình, pstree là một lựa chọn tốt. Tuy nhiên, nếu bạn cần lọc các tiến trình theo nhiều tiêu chí khác nhau hoặc trích xuất thông tin cụ thể về các tiến trình con, ps là một công cụ linh hoạt hơn.
Ngoài ra
- Bạn có thể kết hợp
pstreevàpsđể có được thông tin chi tiết hơn về các tiến trình con. Ví dụ: bạn có thể sử dụngpstreeđể xác định PID của các tiến trình con và sau đó sử dụngpsđể hiển thị thông tin chi tiết về từng tiến trình con. - Có một số công cụ GUI khác có sẵn để hiển thị các tiến trình đang chạy, chẳng hạn như
htopvàglances. Các công cụ này có thể cung cấp cho bạn một cách trực quan hơn để xem các tiến trình và các tiến trình con của chúng.
Hy vọng thông tin này hữu ích cho bạn!
