Разница между ulimit, launchctl, sysctl?

11

При управлении ограничениями операционной системы (в частности, OSX), каковы различия и совпадения между функциональностью и историей этих трех инструментов:

  1. ulimit
  2. launchctl, launchd
  3. sysctl

Я нашел сбивающим с толку настройку максимальных процессов и лимитов открытых файлов на OSX.

Имеет ли значение, если некоторые процессы запускаются через терминал, а не через графический интерфейс?

Возможно связано:

Эрик
источник

Ответы:

4

1. улимит

Это встроенная команда вашей оболочки (bash / ash / zsh и т. Д.). Он временно устанавливает ограничения процесса для текущей оболочки. Кстати, это не специфично для macOS.

2. sysctl

Большинство Unix-подобных (Linux / * BSD / macOS) систем устанавливают глобальные ограничения / настройки ядра через файл конфигурации sysctlкоманды /etc/sysctl.conf.

Похоже, macOS больше не работает sysctl.confпри запуске . Таким образом, в macOS это выглядит sysctlпросто для временной установки глобальных ограничений.

3. launchd / launchctl

Для постоянной установки глобальных ограничений используйте launchctlв macOS.

Доминик Р
источник
1
Текст в "launchd" на самом деле не говорит о launchd (или launchctl, о котором спрашивал OP).
Ник Чаммас
Отредактировал ответ, чтобы исправить точку @NickChammas.
до