Como estão os vários valores ulimit para um conjunto de processos?

1

Como estão os vários valores de ulimit para um conjunto de processos? Eu estou especialmente interessado no número de descritores de arquivos abertos. Como isso é definido para um determinado processo? Se é baseado no usuário que iniciou o processo, então como ele é definido para o usuário?

Como posso definir esses limites para um usuário específico?

    
por abc 25.08.2015 / 03:35

2 respostas

3

Se você não alterou o valor de qualquer recurso mostrado por ulimit , ele usaria o valor padrão que é o que você vê ao executar o shell ulimit -a incorporado. Observe que a chamada do sistema resolvida ao obter o valor é getrlimit(2) .

Novamente, se você precisar alterar o valor necessário, use setrlimit(2) chamada do sistema, ulimit faz exatamente isso ao definir um novo limite de recurso para processos.

Os limites de recursos mostrados em ulimit são aplicados em processos individuais, não em usuários.

Para definir o novo valor para o número de descritores de arquivos abertos (o padrão é 1024) por processo, você pode usar:

ulimit -n 512

Observe que você pode verificar os limites máximo e flexível com ulimit -Hn e ulimit -Sn , respectivamente. Você pode diminuir para qualquer valor e aumentar até o limite máximo.

Para aumentar o limite além do limite rígido atual (1024) você precisa ser root.

Note que você não pode aumentar o valor além do máximo especificado pelo kernel.

Agora, há um arquivo /etc/security/limits.conf usado por pam especificamente pam_limits.so no início de cada sessão de usuário. Você pode definir valores aqui para ter efeito permanente como ulimit definir valores somente para a sessão em execução.

Embora seja necessário definir os valores nesse arquivo em uma base de usuário / grupo, os limites são aplicáveis em cada processo sob esse usuário / grupo, exceto alguns itens como maxsyslogins , maxlogins . /etc/security/limits.conf tem descrição suficiente dentro do arquivo para você começar.

Verifique também help ulimit , man 2 setrlimit para ter mais ideia.

    
por heemayl 26.08.2015 / 02:21
-4

É POSIX - veja man 3 sysconf

NAME
       sysconf - get configuration information at run time

SYNOPSIS
       #include <unistd.h>

       long sysconf(int name);

DESCRIPTION
       POSIX  allows  an  application  to  test at compile or run time whether
       certain options  are  supported,  or  what  the  value  is  of  certain
       configurable constants or limits.

       At  compile time this is done by including <unistd.h> and/or <limits.h>
       and testing the value of certain macros.

       At run time, one  can  ask  for  numerical  values  using  the  present
       function  sysconf().   One can ask for numerical values that may depend
       on the filesystem a  file  is  in  using  the  calls  fpathconf(3)  and
       pathconf(3).  One can ask for string values using confstr(3).

       The  values  obtained  from  these  functions  are system configuration
       constants.  They do not change during the lifetime of a process.  

       ...<snip>... 

       OPEN_MAX - _SC_OPEN_MAX
              The  maximum number of files that a process can have open at any
              time.  Must not be less than _POSIX_OPEN_MAX (20).
    
por waltinator 25.08.2015 / 03:39