Linux folgt (noch) nicht dem POSIX.1-Standard, der besagt, dass ein renice
On-Prozess "alle System-Scope-Threads im Prozess" betrifft, da laut pthreads (7) doc "Threads keinen gemeinsamen Nice-Wert haben".
Manchmal kann es jedoch praktisch sein, renice
"alles" zu tun, was sich auf einen bestimmten Prozess bezieht (ein Beispiel wären untergeordnete Apache-Prozesse und alle ihre Threads). So,
- Wie kann ich
renice
alle Threads, die zu einem bestimmten Prozess gehören? - Wie kann ich
renice
alle untergeordneten Prozesse, die zu einem bestimmten Prozess gehören, ausführen?
Ich suche eine ziemlich einfache Lösung.
Ich weiß, dass Prozessgruppen manchmal hilfreich sein können, aber sie stimmen nicht immer mit meinen Vorstellungen überein: Sie können eine breitere oder andere Gruppe von Prozessen umfassen.
Die Verwendung einer von cgroup
verwalteten systemd
Software kann ebenfalls hilfreich sein, aber selbst wenn ich daran interessiert bin, etwas darüber zu erfahren, suche ich meistens nach einer "Standard" -Lösung.
BEARBEITEN: man (7) pthreads
sagt auch, dass "alle Threads in einem Prozess in derselben Thread-Gruppe platziert werden; alle Mitglieder einer Thread-Gruppe haben dieselbe PID". Ist es also überhaupt möglich, renice
etwas zu tun, das keine eigene PID hat?
man (7) pthreads
sagt über die aktuelle (NPTL-) Implementierung: "Alle Threads in einem Prozess werden in dieselbe Thread-Gruppe gestellt; alle Mitglieder einer Thread-Gruppe haben dieselbe PID" und "Threads haben keinen gemeinsamen Wert". Wie können Sie dann einen Thread, der keine eigene PID hat, umbenennen, wenn Sie dazurenice
eine PID verwenden?