Проекты предоставляют способ применения ограничений на использование ресурсов для разных пользователей и групп. Их можно использовать для ограничения количества файлов, которые может открыть процесс, его максимального размера, использования процессора, выделения памяти и многого другого. Каждый процесс и пользователь принадлежит одному или нескольким проектам. Первоначальный проект пользователя определяется во время входа в систему и будет либо по умолчанию, либо проектом, заданным в разделе «Атрибуты пользователя» этого модуля. Пользователи могут переключаться на разные проекты с помощью команды newtask .
Каждый проект имеет список пользователей и групп, которым разрешен доступ к нему, например, путем переключения на него с помощью команды newtask . То, что пользователь является участником проекта, не обязательно означает, что он автоматически будет принадлежать ему во время входа в систему - это должно быть установлено в разделе «Атрибуты пользователя» .
Наиболее важными атрибутами проекта являются ограничения ресурсов, которые применяются к его пользователям. Каждый имеет следующие атрибуты:
- Ресурс
- Ресурс, которым он управляет, такой как process.max-file-descriptor для максимального создаваемого размера файла или process.max-cpu-time для количества процессорного времени, которое процесс может потреблять.
- Тип ресурса
- Определяет, кто может изменить этот лимит ресурсов, и почти всегда установлен как Привилегированный . Этот атрибут является необязательным - если выбран <None> , вместо него будет применяться системный глобальный лимит для ресурса. Значения других вариантов:
- Привилегированный - может быть изменен только привилегированными (суперпользовательскими) абонентами.
- Система - исправлено на время экземпляра операционной системы.
- Базовый - может быть изменен владельцем вызывающего процесса.
- Верхний предел
- Верхний предел использования, который процессу разрешено использовать до запуска действия. Это вводится в байтах, секундах или количестве потоков, в зависимости от типа ресурса.
- Действие при превышении
- Определяет, что происходит с процессом, который превышает предел. Обычно это значение «Запретить» , что просто приводит к сбою системного вызова, попытавшегося превысить предел. Тем не менее, варианты отправки сигнала в процесс, вызывающий нарушение, также могут быть полезны.