Vous pouvez toujours essayer de faire un ulimit -n 2048
. Cela ne fera que réinitialiser la limite de votre shell actuel et le nombre que vous spécifiez ne doit pas dépasser la limite stricte
Chaque système d'exploitation a une configuration de limite fixe différente dans un fichier de configuration. Par exemple, la limite de fichiers ouverts sur Solaris peut être définie au démarrage à partir de / etc / system.
set rlim_fd_max = 166384
set rlim_fd_cur = 8192
Sous OS X, ces mêmes données doivent être définies dans /etc/sysctl.conf.
kern.maxfilesperproc=166384
kern.maxfiles=8192
Sous Linux, ces paramètres se trouvent souvent dans /etc/security/limits.conf.
Il existe deux types de limites:
- les limites souples sont simplement les limites actuellement appliquées
- les limites strictes indiquent la valeur maximale qui ne peut pas être dépassée en définissant une limite souple
N'importe quel utilisateur peut définir des limites logicielles tandis que les limites strictes ne peuvent être modifiées que par root. Les limites sont la propriété d'un processus. Ils sont hérités lorsqu'un processus enfant est créé, de sorte que les limites à l'échelle du système doivent être définies lors de l'initialisation du système dans les scripts d'initialisation et les limites utilisateur doivent être définies lors de la connexion utilisateur, par exemple en utilisant pam_limits.
Des paramètres par défaut sont souvent définis lors du démarrage de la machine. Ainsi, même si vous pouvez réinitialiser votre ulimit dans un shell individuel, vous pouvez constater qu'il revient à la valeur précédente au redémarrage. Vous pouvez vouloir grep vos scripts de démarrage pour les commandes d'existence ulimit si vous voulez changer la valeur par défaut.