A maioria dos valores¹ em limits.conf
são limites que podem ser definidos com o comando ulimit
shell ou o setrlimit
chamada do sistema. Eles são propriedades de um processo. Os limites se aplicam independentemente para cada processo. Em particular, cada processo pode ter até nofile
de arquivos abertos. Não há limite para o número de arquivos abertos acumulados pelos processos de um usuário.
O limite nproc
é um caso especial, pois soma todos os processos de um usuário. No entanto, ainda se aplica por processo: quando um processo chama fork
para criar um novo processo, a chamada é negada se o número de processos pertencentes ao processo euid for maior do que o valor RLIMIT_NPROC
do processo.
O limit.conf
explica que os limites se aplicam a uma sessão. Isso significa que todos os processos em uma sessão terão todos esses mesmos limites (a menos que sejam alterados por um desses processos). Isso não significa que qualquer soma seja feita sobre os processos em uma sessão (isso não é nem mesmo algo que o sistema operacional rastreia - há uma noção de sessão, mas é mais refinada que isso, por exemplo, cada aplicativo X11 tende a terminar em sua própria sessão). A maneira como funciona é que o processo de login define alguns limites e é herdado por todos os processos filhos.
¹ As exceções são maxlogins
, maxsyslogins
e chroot
, que são aplicadas como parte do processo de login para negar ou influenciar o login.