Linux không (chưa) tuân theo tiêu chuẩn POSIX.1 nói rằng một renice
quy trình ảnh hưởng đến "tất cả các luồng phạm vi hệ thống trong quy trình", bởi vì theo các chủ đề pthreads (7) doc "không chia sẻ một giá trị tốt đẹp chung".
Tuy nhiên, đôi khi, có thể thuận tiện cho renice
"mọi thứ" liên quan đến một quy trình nhất định (một ví dụ sẽ là các quy trình con của Apache và tất cả các luồng của chúng). Vì thế,
- Làm thế nào tôi có thể
renice
tất cả các chủ đề thuộc về một quy trình nhất định? - Làm thế nào tôi có thể
renice
tất cả các quá trình con thuộc một quy trình nhất định?
Tôi đang tìm kiếm một giải pháp khá dễ dàng.
Tôi biết rằng các nhóm quy trình đôi khi có thể hữu ích, tuy nhiên, chúng không phải lúc nào cũng khớp với những gì tôi muốn làm: chúng có thể bao gồm một bộ quy trình rộng hơn hoặc khác nhau.
Sử dụng một cgroup
quản lý bởi systemd
cũng có thể hữu ích, nhưng ngay cả khi tôi muốn nghe về nó, tôi chủ yếu tìm kiếm một giải pháp "tiêu chuẩn".
EDIT: đồng thời, man (7) pthreads
nói rằng "tất cả các luồng trong một tiến trình được đặt trong cùng một nhóm luồng; tất cả các thành viên của một nhóm luồng đều có chung một PID". Vì vậy, thậm chí có khả năng đối với renice
một thứ không có PID riêng không?
man (7) pthreads
nói về việc triển khai (NPTL) hiện tại: "tất cả các luồng trong một quy trình được đặt trong cùng một nhóm luồng; tất cả các thành viên của nhóm luồng chia sẻ cùng một PID" và "Các luồng không chia sẻ một giá trị đẹp chung". Sau đó, làm thế nào bạn có thể gia hạn một luồng không có PID riêng, khirenice
sử dụng PID để làm như vậy?