Różnica między ulimit, launchctl, sysctl?

11

Przy zarządzaniu limitami systemu operacyjnego (w szczególności OSX), jaka jest różnica i nakładają się na funkcjonalność i historię tych trzech narzędzi:

  1. ulimit
  2. launchctl, launchd
  3. sysctl

Stwierdziłem, że mylące jest dostosowywanie maksymalnych procesów i otwieranie limitów plików w OSX.

Czy to ma znaczenie, czy niektóre procesy są uruchamiane przez terminal, a GUI?

Ewentualnie powiązane:

Eric
źródło

Odpowiedzi:

4

1. ulimit

To jest wbudowane polecenie twojej powłoki (bash / ash / zsh itp.). To tymczasowe zestawy przetwarzania ograniczenia dla obecnego powłoki. Nawiasem mówiąc, nie jest to specyficzne dla systemu macOS.

2. sysctl

Większość systemów uniksowych (Linux / * BSD / macOS) określa globalne ustawienia limitu / jądra za pomocą pliku konfiguracyjnego sysctlpolecenia /etc/sysctl.conf.

Wygląda na to, że macOS nie honoruje sysctl.confjuż przy starcie . Tak więc w systemie macOS wygląda na to, że sysctlsłuży jedynie do tymczasowego ustawienia globalnych limitów.

3. launchd / launchctl

Aby ustawić globalne limity w trwały sposób, użyj launchctlna macOS.

Dominik R.
źródło
1
Tekst pod tekstem „launchd” w rzeczywistości nie mówi o uruchomionym (lub launchctl, o który poprosił PO).
Nick Chammas,
Edytowałem odpowiedź, aby naprawić punkt @NickChammas.
do