Como eu defino o ulimit de 'encadeamentos máximos por processo' para usuários não-root?

5

A página man do Ulimit sugere que a opção -r definirá isso, mas parece ser válida apenas para o usuário root e não há equivalente para configurá-lo via / etc / security / limits?

Alguma idéia?

    
por Jon 23.02.2010 / 13:11

1 resposta

3

Você disse AIX, mas no caso do Linux eu acho que seria apenas a opção -u limit. No Linux, isso indica 'processos', mas com bash, ulimit é apenas uma interface para a chamada de sistema setrlimit. Isso pode ser visto executando strace bash -c 'ulimit -u 10' , que retorna:

setrlimit(RLIMIT_NPROC, {rlim_cur=10, rlim_max=10}) = 0

A página man do setrlimit afirma:

RLIMIT_NPROC The maximum number of processes (or, more precisely on Linux, threads) that can be created for the real user ID of the calling process. Upon encountering this limit, fork(2) fails with the error EAGAIN.

Então talvez seja o mesmo para o AIX? Este link declara: "O AIX não define os recursos RLIMIT_NPROC ou RLIMIT_MEMLOCK.", mas você pode encontrar um resposta mais definitiva no developerworks.

Para o problema de permissões, a solução pode ser definir o limite com raiz e, em seguida, su para o usuário para o qual você precisa aumentar o limite. Eu tive que fazer isso para outros limites de recursos no passado, por exemplo, max abrir arquivos. O limits.conf não foi aplicado, então usei o sudo ou o su do root, e o limite é herdado.

    
por 23.02.2010 / 13:26

Tags