Creando un cgroup único

Creando un cgroup único

Me gustaría poder crear un grupo temporal único en jerarquía. Por ejemplo:

#!/bin/sh
run_with_csubgroup /sys/fs/cgroup/group/subgroup/

Lo que crea un grupo, por ejemplo /sys/fs/cgroup/group/subgroup/5G7ds/(5G7ds es un nombre único; puede ser una identificación o cualquier cosa).

Me gustaría eliminar el grupo automáticamente pero no sé cómo hacerlo fácilmente y soy propenso a decir señal TERM (de actidental C-c).

¿Hay una manera de hacerlo? Estoy usando Gentoo+systemd.

Respuesta1

Puede ejecutar sus comandos a través de systemd-run --scope. Esto crea un cgroup transitorio (es decir, temporal) para su comando. Luego puede modificar el cgroup según sus necesidades. Úselo systemd-cglspara encontrar su proceso en la jerarquía de cgroup en /sys/fs/cgroup.

De acuerdo con lapágina de manual de systemd-run

systemd-run se puede utilizar para crear e iniciar un .servicio transitorio o un .temporizador transitorio o una unidad .scope y ejecutar el COMANDO especificado en él.

También puede especificar restricciones para su unidad mediante el systemd-runcomando usando la --propertybandera (se permite más de una vez). Para propiedades disponibles puede consultar con elpágina de manual de systemd.resource-control.

Si desea establecer propiedades más adelante, puede utilizar systemd set-property.

Tenga en cuenta que es una buena idea proporcionar un nombre para su unidad con la --unit=yournamebandera, para que pueda acceder a ella fácilmente.

Hay un muy buen texto sobrela nueva interfaz del grupo de control, que recomiendo encarecidamente. También elGuía de gestión de recursos y contenedores de Linux de Red Hat Enterprise Linux 7proporciona una descripción muy clara de cómo utilizar cgroups con systemd.

Respuesta2

Es posible que necesites especificar una vida útil específica para tu grupo; es posible que desee activarlo después de iniciar la computadora y eliminarlo después de apagarlo. Así que no es mala idea agregarlo a tus /etc/rcscripts.

Respuesta3

No estoy seguro de haber entendido correctamente, pero ¿no puedes simplemente:

~] umount /sys/fs/cgroup/group/subgroup/5G7ds/
~] rmdir /sys/fs/cgroup/group/subgroup/5G7ds/

Lo anterior desmonta el cgroup y lo elimina.

información relacionada