A maioria dos valores¹ in limits.conf
são limites que podem ser definidos com o ulimit
comando shell ou a 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
arquivos abertos. Não há limite para o número de arquivos abertos acumulados pelos processos de um usuário.
O nproc
limite é um caso um pouco especial, pois soma todos os processos de um usuário. No entanto, ele 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 euid do processo for maior que o RLIMIT_NPROC
valor do processo .
A limits.conf
página do manual explica que os limites se aplicam a uma sessão. Isso significa que todos os processos em uma sessão terão todos os mesmos limites (a menos que sejam alterados por um desses processos). Isso não significa que qualquer soma seja feita nos processos de uma sessão (isso não é algo que o sistema operacional rastreia - existe uma noção de sessão, mas é mais refinada do 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 são herdados 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.