Создание одноразового cgroup

Я использую IPCop дома точно так же, как Вы, описывает это. Это не действительно, который обновил, но это стабильно и делает это - работа хорошо.

  • Удостоверьтесь, что он распознает аппаратные средства, эти две сетевых платы.
  • Красный интерфейс должен быть тем с WAN / модем
  • Зеленым интерфейсом является Ваша домашняя LAN.
3
28.03.2012, 14:11
3 ответа

Не уверенный я понимаю правильно, но не можете Вы просто:

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

Вышеупомянутые размонтирования cgroup и удаляют его.

0
27.01.2020, 21:17
  • 1
    я хотел бы автоматизировать его. Т.е. группа, которая 'авторазрушает', когда нет никаких задач к ней (похожим способом, поскольку inode освобожден после, нет никаких записей, указывающих на него). –  Maciej Piechotka 16.05.2012, 09:28
  • 2
    Самое легкое решение, которое приходит на ум, просто проверяет, пуст ли файл задач в данном cgroup и если это, выполните вышеупомянутые команды. Можно настроить его как задание крона, которое выполняется каждые 10 минут и очищает любой "неиспользованный" cgroups. –  mart1n 05.06.2012, 20:30

Вы, возможно, должны указать определенное время жизни для своей группы; можно хотеть это на после компьютерного запуска и удаленный после завершения работы. Таким образом, это не плохая идея добавить его к Вашему /etc/rc сценарии.

2
27.01.2020, 21:17

Это также можно сделать с помощью правил перезаписи apache для случаев, когда вы не пересылаете tomcat, как описано Ламбертом.

RewriteCond% {HTTP _ HOST} ^ wp.me.com $

RewriteRule ^ (. *) $ http://your.apache.wordpress.com/ $1 [R = 301, L]

-121--100529-

Не паникуйте.

Ничего смешного не происходит. Здесь нет ошибки ядра. Это совершенно нормальное поведение от оболочки Bourne Again и многозадачной операционной системы.

Следует помнить, что процесс убивает себя , даже в ответ на SIGKILL . То, что происходит здесь, это то, что оболочка Борна снова приходит к вещам , прежде чем процесс, который он только что сказал убить себя, становится убийством самого себя.

Рассмотрим, что происходит из точки, где yes остановлено с помощью SIGTSTP и вы только что выполнили команду kill с помощью оболочки Bourne Again:

  1. оболочка отправляет SIGKILL процессу yes .
  2. Параллельно :
    1. Запланирован запуск процесса yes , который немедленно завершит работу.
    2. Оболочка Bourne Again продолжается, выдавая другую подсказку.

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

В интересном случае детализация шага # 2 такова:

  1. Оболочка Bourne Again продолжается.
  2. В составе внутренних устройств встроенной команды kill помечает запись в своей таблице заданий как требующую сообщения уведомления, напечатанного в следующей доступной точке.
  3. Она завершает выполнение команды kill и непосредственно перед печатью запроса снова проверяет, следует ли печатать уведомления о заданиях.
  4. У процесса да еще не было возможности покончить с собой, так что, если дело касается оболочки, работа все еще находится в остановленном состоянии. Таким образом, оболочка печатает строку состояния задания «Stopped» для этого задания и сбрасывает флаг ожидания уведомления.
  5. Процесс yes запланирован и сам себя убивает.
  6. Ядро сообщает оболочке, которая занята запуском редактора командной строки, что процесс завершил работу. Оболочка отмечает изменение состояния и помечает задание как ожидающее уведомления снова.
  7. Простое нажатие enter для повторного циклического перехода к печати приглашения дает оболочке возможность распечатать новый статус задания.

Важные точки:

  • Процессы убивают себя. SIGKILL не является магическим. Процессы проверяют наличие ожидающих сигналов при возврате в режим приложения из режима ядра, что происходит в конце отказов страницы, (не вложенных) прерываний и системных вызовов.Единственная особенность заключается в том, что ядро не допускает, чтобы действие в ответ на SIGKILL было чем-то иным, кроме немедленного и безусловного самоубийства, без возврата в режим приложения. Важно отметить, что процессы должны одновременно выполнять переходы из ядра в режим приложения и , чтобы реагировать на сигналы.
  • Виртуальный ЦП - это просто поток в операционной системе хоста. Нет гарантии, что узел запланировал запуск виртуального ЦП. Серверные операционные системы тоже не волшебны.
  • Сообщения уведомления не печатаются при изменении состояния задания (если не используется set -o notify ). Они печатаются, когда следующая оболочка достигает точки в своем цикле выполнения, что она проверяет, находятся ли какие-либо уведомления в ожидании.
  • Флаг ожидания уведомления устанавливать дважды, один раз с помощью kill и один раз с помощью обработчика сигналов SIGCHLD . Это означает, что можно увидеть два сообщения, если оболочка выполняется перед процессом yes , перепланированным для самоуничтожения; одно сообщение «Stopped» и одно сообщение «Killed».
  • Очевидно, что программа /bin/kill не имеет доступа к внутренней таблице заданий оболочки; таким образом, вы не увидите такого поведения при /bin/kill . Флаг ожидания уведомления устанавливается обработчиком SIGCHLD только один раз.
  • По той же причине вы не увидите такого поведения, если убьете процесс yes из другой оболочки.
-121--47154-

Команды можно выполнить с помощью systemd-run --scope . Это создает временную (т.е. временную) группу cgroup для вашей команды. Затем можно изменить группу cgroup в соответствии с требованиями пользователя. Используйте systemd-cgls для поиска процесса в иерархии групп в /sys/fs/cgroup .

В соответствии с systemd-run manpage

systemd-run может использоваться для создания и запуска transient .service или transient .timer или .scope unit и выполнения в нем указанной КОМАНДЫ.

Можно также указать ограничения для устройства с помощью команды systemd-run , используя флаг --property (допускается более одного раза). Доступные свойства можно узнать с помощью sytemd.resource-control manpage .

Если требуется установить свойства позже, можно использовать systemd set-property .

Имейте в виду, что это хорошая идея, чтобы предоставить имя для вашего устройства с флагом --unit = your name , чтобы вы могли легко получить к нему доступ.

Имеется очень хороший текст о новом интерфейсе группы управления , который я настоятельно рекомендую. Кроме того, Red Hat Enterprise Linux 7 Руководство по управлению ресурсами и контейнерам Linux содержит очень четкое описание использования cgroups wirh systemd.

3
27.01.2020, 21:17

Теги

Похожие вопросы