Cela se produit sur la version Ubuntu 12.04 (précise) du noyau 64 bits Linux 3.2.0-25-virtual
J'essaie d'augmenter le nombre de fichiers ouverts autorisés pour un utilisateur. Ceci est pour mon application java éclipse où la limite actuelle de 1024 n'est pas suffisante.
Selon les publications que j’ai trouvées jusqu’à présent, je devrais pouvoir insérer des lignes dans
/etc/security/limits.conf comme ceci:
soft nofile 4096
hard nofile 4096
augmenter le nombre de fichiers ouverts autorisés pour tous les utilisateurs.
Mais cela ne fonctionne pas pour moi et je pense que le problème n'est pas lié à ce fichier.
Pour tous les utilisateurs, la limite par défaut est de 1024, quel que soit le contenu de /etc/security/limits.conf (j'ai redémarré après avoir modifié ce fichier).
$ ulimit -n
1024
Maintenant, malgré les entrées dans /etc/security/limits.conf, je ne peux pas augmenter cela:
$ ulimit -n 2048
-bash: ulimit: les fichiers ouverts: ne peut pas modifier la limite: Opération non autorisée La partie étrange est que je peux changer la limite vers le bas , mais ne peut pas changer vers le haut - même de revenir à un chiffre qui est inférieur à la limite d' origine:
$ ulimit -n 800
$ ulimit -n
800
$ ulimit -n 900
-bash: ulimit: open files: cannot modify limit: Operation not permitted
En tant que root, je peux modifier cette limite en tout ou en partie. Il ne semble même pas se soucier de la soi-disant limite à l'échelle du système dans / proc / sys / fs / file-max
# cat /proc/sys/fs/file-max
188897
# ulimit -n 188898
# ulimit -n
188898
Mais même si je dois exécuter eclipse en tant que root, mon application se bloque toujours à cause de l'exception "Too Many Open File"!
Jusqu'à présent, je n'ai trouvé aucun moyen d'augmenter la limite de fichiers ouverts pour un utilisateur non root.
Comment dois-je faire correctement cela? J'ai regardé plusieurs autres posts mais pas de chance!
/etc/security/limits.conf
, vous devrez peut-être vous déconnecter puis vous reconnecter avant de pouvoir utiliser la nouvelle limite maximale. Je l'ai fait, et j'ai été déconcerté deulimit -Hs
toujours afficher 1000 alors que je venais de l'élever à 1000000! Ensuite, je me suis déconnecté puis rentré, et ulimit a montré le nouveau montant.