Show Table of Contents
2.8. 將程序移動至控制群組中
您可透過執行
cgclassify 指令來將程序移至控制群組中:
~]# cgclassify -g cpu,memory:group1 1701cgclassify 的語法為:cgclassify -g subsystem:path_to_cgroup pidlist,而:
- subsystem(子系統)代表一個逗號區隔開的子系統清單,
*以啟動與所有可用子系統相聯的階層中的程序。請注意,若相同名稱的控制群組存在多重階層中,-g選項便會移動各個這些群組中的程序。請確認控制群組存在您在此所指定的子系統的各個階層中。 - path_to_cgroup 代表階層中的控制群組之路徑
- pid 清單代表以空格隔開的 process identifier(PID)清單
您亦可在 pid 之前附加一個
--sticky 選項,以保留相同控制群組中的任何子程序。若您不設置此選項,並且 cgred daemon 正在執行的話,子程序將會被根據 /etc/cgrules.conf 中的設定,分配給控制群組。然而,程序本身將會保留在您所啟動該程序的控制群組中。
透過使用
cgclassify,您能夠同時地移動多項程序。比方說,這項指令可將 PID 為 1701 以及 1138 的程序移至控制群組 group1/ 中:
~]# cgclassify -g cpu,memory:group1 1701 1138
請注意,欲移動的 PID 將以空格區隔開來,並且已指定的群組應位於不同的階層中。
額外方式
若要直接將一項程序移至控制群組中,請將它的 PID 寫入控制群組的
tasks 檔案中。比方說,若要將 PID 為 1701 的程序移至位於 /cgroup/lab1/group1/ 的控制群組中:
~]# echo 1701 > /cgroup/lab1/group1/tasks2.8.1. cgred Daemon
Cgred 是個會根據設定於
/etc/cgrules.conf 檔案中的參數,來將工作移至控制群組中的 daemon。/etc/cgrules.conf 檔案中的項目能夠是以下兩種格式之一:
- 使用者 階層 控制群組
- 使用者:指令 階層 控制群組
例如:
maria devices /usergroup/staff
此項目指定了任何屬於使用者
maria 的程序將根據指定於 /usergroup/staff 控制群組中的參數,存取裝置子系統。若要相聯特定指令與特定控制群組,請如下附加command參數:
maria:ftp devices /usergroup/staff/ftp
項目現在指定了當名稱為
maria 的使用者使用了 ftp 指令時,程序會自動地移至包含了 devices 子系統的階層中的 /usergroup/staff/ftp 控制群組。然而,請注意,daemon 只會在適當的條件滿足後,才會將程序移至控制群組。因此,ftp 程序可能會在錯誤的群組中,短暫執行。此外,若該程序在錯誤的群組中,快速地衍生了子程序,這些子程序將可能不會被移動。
/etc/cgrules.conf 檔案中的項目可包含下列額外標記法:
@— 當放置在使用者之前,便代表群組,而非各別的使用者。比方說,@admins代表admins群組中的所有使用者。*— 代表了「全部」。例如,子系統欄位中的*代表了所有的子系統。%— 代表了一個與上面一行中的項目相同的項目。例如:@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.