Linux cgroup: переместить процесс из одной группы в другую


1

Предисловие: я не на 100 процентов знаком с systemd и концепциями файлов модулей, но я немного прочитал.

Контекст: я хочу переместить процесс из одного дерева cgroup в другое в дистрибутиве, где запущены systemd и (не systemd, скажем, upstart). Точнее, скажем, дерево cgroup выглядит следующим образом.

В основном иерархия выглядит так относительно my_root

                     my_root
                        |
                  ______ ___________
                  |                |
                  d11             d12
              (P lives here)       |
                              ___________
                              |          |
                             d21        d22

тогда P переходит под d21 или

                     my_root
                        |
                  ______ ___________
                  |                |
                  d11             d12
                                   |
                              ___________
                              |          |
                             d21        d22
                     (P lives here now) 

Ради полноты скажем my_root = /sys/fs/cgroups/cpu,cpuacct/my_root

Давайте говорить о не-Systemd ведре: Если я бег на дистрибутиве , который не работает Systemd я могу только повторить идентификатор процесса P1в cgroups.procsо , d21а затем он будет двигать процесс этой контрольной группы.

А теперь systemdвариант использования, и в этом я не уверен, скажем, я делаю то же самое, что я делал выше, могут произойти две вещи.

  • Процесс движется туда и остается там.
  • Первоначально процесс перемещается туда, но через некоторое время он либо возвращается, либо переходит в корневую группу для этого конкретного контроллера.

Я хочу избежать последнего. По сути, я думаю, что когда я указываю файл модуля для своего приложения, я хочу стать владельцем cgroup, в котором запускается приложение, например, приложение становится владельцем my_rootcgroup, чтобы systemd не мешала перемещению процесса.

Теперь к многочастному вопросу.

  • Действительно ли systemd удалит процесс из группы, в которую я его перенес?
  • Если да, то что мне нужно сделать, чтобы стать владельцем группы в файле модуля. Я ищу некоторые конкретные примеры файлов модулей.

ресурс: https://www.freedesktop.org/wiki/Software/systemd/ControlGroupInterface/

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.