Show Table of Contents
2.9. Запуск процесса в контрольной группе
Важно
Для некоторых подсистем существуют обязательные параметры, которые необходимо установить, прежде чем приступать к переносу заданий. Так, например, прежде чем перенести задание в группу, использующую подсистему
cpuset, необходимо определить значения cpuset.cpus и cpuset.mems.
Приведенные в этой секции примеры будут работать при условии, что заданы обязательные параметры для используемых контроллеров.
Раздел 3.10, «Дополнительные ресурсы» содержит перечень параметров.
Для запуска процессов в контрольной группе используется
cgexec. Ниже будет запущен браузер lynx в пределах группы group1. Этот процесс унаследует ограничения доступа, определенные подсистемой cpu для этой группы:
~]# cgexec -g cpu:group1 lynx http://www.redhat.com
Формат:
cgexec -g подсистемы:путь команда аргументы.
- подсистемы — список подсистем, разделенных запятой. Если указать
*, будут выбраны все подсистемы, которым принадлежат указанные процессы. Если в разных иерархиях есть группы с одним и тем же именем,-gсоздаст процессы в каждой группе. - путь — путь к группе из корня иерархии.
- команда — выполняемая команда.
- аргументы — аргументы команды.
Дополнительный аргумент
-- sticky перед командой оставляет дочерние процессы в текущей группе. Если аргумент не указан, и в то же время выполняется cgred, дочерние процессы будут переназначены в соответствии с настройками в /etc/cgrules.conf. Сам процесс будет оставаться в исходной контрольной группе.
Создание иерархии в оболочке
При запуске нового процесса он унаследует группу создавшего его процесса. Поэтому чтобы запустить процесс в выбранной группе, можно перенести в эту группу процесс оболочки (см. Раздел 2.8, «Перенос процесса в контрольную группу») и уже затем запустить процесс из этой оболочки.
~]#echo $$ > /cgroup/lab1/group1/taskslynx
После выхода из lynx оболочка все еще будет состоять в группе
group1. Поэтому лучше предпочесть следующий метод:
~]# sh -c "echo \$$ > /cgroup/lab1/group1/tasks && lynx"2.9.1. Запуск службы в контрольной группе
Требования к запускаемым в группе службам:
- они должны использовать файл
/etc/sysconfig/имя_службы; - для запуска должны использовать функцию
daemon()из/etc/init.d/functions.
Чтобы запустить службу в контрольной группе, добавьте запись
CGROUP_DAEMON="подсистема:группа" в ее файл /etc/sysconfig. Пример:
CGROUP_DAEMON="cpuset:daemons/sql"

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.