Différence entre ulimit, launchctl, sysctl?

10

Lors de la gestion des limites du système d'exploitation (spécifiquement OSX), quelle est la différence et le chevauchement entre la fonctionnalité et l'historique de ces trois outils:

  1. ulimit
  2. launchctl, launchd
  3. sysctl

J'ai trouvé confus d'ajuster le maximum de processus et d'ouvrir les limites de fichiers sur OSX.

Est-il important que certains processus soient lancés via le terminal par rapport à l'interface graphique?

Peut-être lié:

Eric
la source

Réponses:

3

1. ulimit

Il s'agit d'une commande intégrée de votre shell (bash / ash / zsh, etc.). Il définit temporairement les limites de processus pour le shell actuel. Ce n'est pas spécifique à macOS d'ailleurs.

2. sysctl

La plupart des systèmes de type Unix (Linux / * BSD / macOS) définissent les paramètres de limite / noyau globaux via le fichier de configuration de sysctlcommande /etc/sysctl.conf.

Il semble que macOS n'honore plus sysctl.confau démarrage . Donc, sur macOS, il semble que ce sysctlsoit simplement utilisable pour fixer temporairement les limites globales.

3. launchd / launchctl

Pour définir des limites globales de manière persistante, utilisez launchctlsur macOS.

Dominik R
la source
1
Le texte sous "launchd" ne parle pas réellement de launchd (ou launchctl, ce que l'OP a demandé).
Nick Chammas
Modification de la réponse pour corriger le point de @NickChammas.
jusqu'au