No Linux, há limites de usuários para acessar recursos do sistema.
O comando interno do shell ulimit
pode ser usado para ver os limites de usuário para o usuário atual.
ulimit -a # soft limits
ulimit -a -H # hard limits
Então também posso ver o limite suave/rígido por processo olhando para /proc/$PID/limits
.
# For example, the limits on firefox process:
PID=$(ps -A | grep firefox | awk '{print $1;}' | head -n1)
cat /proc/$PID/limits
# OR in short:
cat /proc/$(ps -A | grep firefox | awk '{print $1;}' | head -n1)/limits
Gostaria de saber qual é a diferença entre essas duas saídas?
Vejo /proc/$PID/limits
alguns limites maiores que ulimit -a -H
a saída (Limites rígidos) para o mesmo recurso.
Os limites do processo gerado por um usuário podem exceder os limites do usuário ( ulimit
)?
Tentei incluir minha pergunta em uma pergunta com objetivos semelhantes: https://unix.stackexchange.com/review/suggested-edits/470961 . A edição foi rejeitada.
Se estiver procurando os limites para o PID do seu shell, eles são os mesmos mostrados na saída de
ulimit
.ulimit é um comando interno para o shell atual. O comando define os limites para o shell e os processos gerados por ele. Os limites listados com as opções -S e -H são os mesmos que podem ser emitidos com os comandos:
ou
Se você observar os limites de um processo aleatório como o 'firefox', ele pode não ter sido gerado pelo shell atual.
Limites definidos por um usuário comum só podem ser aumentados uma vez e então somente para qualquer valor até e incluindo o limite rígido. Após essa configuração inicial de um limite, o limite só pode ser reduzido.
O usuário
root
não tem essa limitação.Cada usuário pode ter limites diferentes. Os limites são configurados no arquivo
/etc/security/limits.conf
e são aplicados pelo módulo PAM pam_limits.so durante o login.