Os projetos fornecem uma maneira de impor limites ao uso de recursos para diferentes usuários e grupos. Eles podem ser usados para restringir o número de arquivos que um processo pode abrir, como tamanho máximo de arquivo, uso da CPU, alocação de memória e muito mais. Todo processo e usuário pertence a um ou mais projetos. O projeto inicial de um usuário é determinado no momento do login e será o padrão ou o projeto definido na seção Atributos do Usuário deste módulo. Os usuários podem alternar para projetos diferentes usando o comando newtask .
Cada projeto possui uma lista de usuários e grupos que têm permissão para acessá-lo, por exemplo, alternando para ele com o comando newtask . Só porque um usuário é membro de um projeto, não significa necessariamente que ele automaticamente pertencerá a ele no momento do login - isso deve ser definido na seção Atributos do Usuário .
Os atributos mais importantes de um projeto são os limites de recursos que se aplicam aos usuários membros. Cada um tem os seguintes atributos:
- Recurso
- O recurso que ele controla, como process.max-file-descriptor para o tamanho máximo de arquivo que pode ser criado, ou process.max-cpu-time para a quantidade de tempo de CPU que um processo pode consumir.
- Tipo de recurso
- Determina quem pode modificar esse limite de recurso e quase sempre é definido como Privilegiado . Este atributo é opcional - se <Nenhum> estiver selecionado, o limite global do sistema para o recurso será aplicado. Os significados das outras opções são:
- Privilegiado - Pode ser modificado apenas por chamadores privilegiados (superusuário).
- Sistema - corrigido pela duração da instância do sistema operacional.
- Básico - pode ser modificado pelo proprietário do processo de chamada.
- Limite superior
- O limite superior de uso que um processo pode consumir antes que a ação seja acionada. Isso é inserido em bytes, segundos ou número de threads, dependendo do tipo de recurso.
- Ação quando excedida
- Determina o que acontece com um processo que excede o limite. Normalmente, isso é definido como Negar , o que simplesmente causa falha na chamada do sistema que tentou exceder o limite. No entanto, as opções para enviar um sinal para o processo incorreto também podem ser úteis.