Unterschied zwischen ulimit, launchctl, sysctl?

10

Was ist der Unterschied und die Überschneidung zwischen der Funktionalität und dem Verlauf dieser drei Tools, wenn Sie die Grenzen des Betriebssystems (insbesondere OSX) verwalten?

  1. ulimit
  2. launchctl, launchd
  3. sysctl

Ich fand es verwirrend, die maximalen Prozesse und Grenzwerte für offene Dateien unter OSX anzupassen.

Ist es wichtig, ob einige Prozesse über das Terminal oder über die GUI gestartet werden?

Möglicherweise verwandt:

Eric
quelle

Antworten:

3

1. ulimit

Dies ist ein eingebauter Befehl Ihrer Shell (bash / ash / zsh usw.). Es werden vorübergehend Prozessgrenzen für die aktuelle Shell festgelegt. Dies ist übrigens nicht macOS-spezifisch.

2. sysctl

Die meisten Unix-ähnlichen Systeme (Linux / * BSD / macOS) legen globale Limit- / Kernel-Einstellungen über die sysctlBefehlskonfigurationsdatei fest /etc/sysctl.conf.

Scheint, als würde macOS sysctl.confbeim Start nicht mehr ehren . Unter macOS sieht es also so aus, als ob sysctles nur zum vorübergehenden Festlegen der globalen Grenzen verwendet werden kann.

3. launchd / launchctl

Verwenden Sie launchctlunter macOS , um globale Grenzwerte dauerhaft festzulegen.

Dominik R.
quelle
1
Der Text unter "launchd" spricht eigentlich nicht über launchd (oder launchctl, nach dem das OP gefragt hat).
Nick Chammas
Die Antwort wurde bearbeitet, um den Punkt von @NickChammas zu korrigieren.
Bis