Diferença entre ulimit, launchctl, sysctl?

10

Ao gerenciar os limites do sistema operacional (especificamente OSX), qual é a diferença e a sobreposição entre a funcionalidade e o histórico dessas três ferramentas:

  1. ulimit
  2. launchctl, launchd
  3. sysctl

Achei confuso ajustar o máximo de processos e abrir limites de arquivos no OSX.

Importa se alguns processos são iniciados pelo terminal versus a GUI?

Possivelmente relacionado:

Eric
fonte

Respostas:

3

1. ulimit

Este é um comando interno do seu shell (bash / ash / zsh etc). Ele define temporariamente os limites do processo para o shell atual. A propósito, isso não é específico do macOS.

2. sysctl

A maioria dos sistemas do tipo unix (Linux / * BSD / macOS) define configurações globais de limite / kernel através do arquivo de configuração de sysctlcomando /etc/sysctl.conf.

Parece que o macOS não honra mais sysctl.confna inicialização . Portanto, no macOS, parece que sysctlé meramente utilizável para definir temporariamente os limites globais.

3. launchd / launchctl

Para definir limites globais de maneira persistente, use launchctlno macOS.

Dominik R
fonte
1
O texto em "launchd" não fala sobre o launchd (ou o launchctl, sobre o qual o OP perguntou).
Nick Chammas
Editou a resposta para corrigir o ponto de @NickChammas.
até