Show Table of Contents
2.8. Verschieben eines Prozesses in eine Kontrollgruppe
Sie können einen Prozess in eine Kontrollgruppe verschieben, indem Sie den Befehl
cgclassify ausführen:
~]# cgclassify -g cpu,memory:group1 1701
Die Syntax für
cgclassify lautet: cgclassify -g subsystems:path_to_cgroup pidlist, wobei gilt:
- subsystems ist eine kommagetrennte Liste mit Subsystemen, oder
*, zum Starten der Prozesse in den Hierarchien, die mit allen verfügbaren Subsystemen verknüpft sind. Falls Kontrollgruppen desselben Namens in mehreren Hierarchien existieren, beachten Sie, dass die-gOption die Prozesse in jeder dieser Gruppen verlegt. Vergewissern Sie sich, dass die Kontrollgruppe innerhalb aller Hierarchien existiert, deren Subsysteme Sie hier spezifizieren. - path_to_cgroup ist der Pfad zur Kontrollgruppe innerhalb ihrer Hierarchien
- pidlist ist eine kommagetrennte Liste von Process Identifier (PIDs)
Sie können auch die Option
-- sticky vor der Prozess-ID pid einfügen, um jegliche untergeordnete Prozesse in derselben Kontrollgruppe beizubehalten. Wenn Sie diese Option nicht setzen und der cgred-Daemon ausgeführt wird, werden untergeordnete Prozesse Kontrollgruppen anhand der in /etc/cgrules.conf gefundenen Einstellungen zugewiesen. Der Prozess selbst jedoch bleibt in der Kontrollgruppe, in der er gestartet wurde.
Mithilfe von
cgclassify können Sie mehrere Prozesse gleichzeitig verschieben. Dieser Befehl verschiebt beispielsweise die Prozesse mit den PIDs 1701 und 1138 in die Kontrollgruppe group1/:
~]# cgclassify -g cpu,memory:group1 1701 1138
Beachten Sie, dass die PIDs, die verschoben werden sollen, durch Leerzeichen getrennt sind und dass sich die angegebenen Kontrollgruppen in verschiedenen Hierarchien befinden sollten.
Alternative Methode
Schreiben Sie den Prozess-Identifier (PID) in die
tasks-Datei einer Kontrollgruppe, um einen Prozess direkt in diese Kontrollgruppe zu verschieben. Um beispielsweise einen Prozess mit der PID 1701 in eine Kontrollgruppe unter /cgroup/lab1/group1/ zu verschieben:
~]# echo 1701 > /cgroup/lab1/group1/tasks2.8.1. Der cgred-Daemon
Cgred ist ein Daemon, der Prozesse anhand der in der Datei
/etc/cgrules.conf gesetzten Parameter in Kontrollgruppen verschiebt. Einträge in der /etc/cgrules.conf-Datei können in einer der folgenden zwei Formate vorliegen:
- user hierarchies control_group
- user:command hierarchies control_group
Zum Beispiel:
maria devices /usergroup/staff
Dieser Eintrag definiert, dass alle Prozesse, die dem Benutzer namens
maria gehören, auf das devices-Subsystem anhand der in der Kontrollgruppe /usergroup/staff spezifizierten Parameter zugreifen. Um bestimmte Befehle mit bestimmten Kontrollgruppen zu verknüpfen, fügen Sie den Parameter command wie folgt hinzu:
maria:ftp devices /usergroup/staff/ftp
Dieser Eintrag definiert nun, dass wenn der Benutzer namens
maria den ftp-Befehl verwendet, der Prozess automatisch in die /usergroup/staff/ftp-Kontrollgruppe in der Hierarchie verlegt wird, die das devices-Subsystem enthält. Beachten Sie jedoch, dass der Daemon den Prozess erst in die Kontrollgruppe verlegt, nachdem die entsprechende Bedingung erfüllt wurde. Deshalb ist es möglich, dass der ftp-Prozess für kurze Zeit in der falschen Gruppe läuft. Falls der Prozess sofort Unterprozesse startet, während er sich noch in der falschen Gruppe befindet, werden diese Unterprozesse unter Umständen nicht verschoben.
Einträge in der
/etc/cgrules.conf-Datei können die folgende, zusätzliche Notation enthalten:
@— wird dies als Präfix für user verwendet, kennzeichnet dies eine Gruppe statt eines einzelnen Benutzers. So sind@adminsbeispielsweise alle Benutzer in der Gruppeadmins.*— steht für "alle". So steht*im Feldsubsystembeispielsweise für alle Subsysteme.%— steht für ein Element, das dem Element in der darüber liegenden Zeile entspricht. Zum Beispiel:@adminstaff devices /admingroup @labstaff % %

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.