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

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

  1. ulimit
  2. launchctl, launchd
  3. sysctl

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

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

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

1 ответ

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.

Другие вопросы по тегам