Dans l'interpréteur de commandes, ulimit permet de "contrôler les ressources disponibles pour l'interpréteur de commandes et pour les processus qu'il lance" (cf. man bash
). Par conséquent, il ne s'applique qu'à l'obus et à ses enfants. Les limites pour launchd sont liées à ce dernier et aux processus qu'il gère. Les deux sont séparés.
Les programmes individuels peuvent définir leurs propres limites de ressources en appelant les routines de la bibliothèque C standard ulimit()
o getrlimit()
y setrlimit()
. Certaines limites de ressources ne peuvent être levées que si le processus est exécuté en tant que super-utilisateur.
À titre d'exemple pratique, je débogue de gros projets logiciels et la limite par défaut du shell pour le nombre de fichiers ouverts n'est pas assez élevée. Dans mon fichier .bashrc, j'ai ce qui suit :
# Increase the upper limit on the number of open files:
ulimit -n 1024
Maintenant, mon débogueur ne se plaint plus de ne pas pouvoir ouvrir tous les fichiers dont il a besoin. Évidemment, cela ne devrait pas avoir d'impact sur launchd.