sudo: ulimit: command introuvable

J'utilisais ubuntu 12.04, sur lequel je cours ulimit -n, il montre 1024, je veux augmenter ma limite de file ouvert de 1024 à 65535, alors j'ai essayé la command suivante:

sudo ulimit -n 65535 

mais j'obtiens l'erreur suivante:

 sudo: ulimit: command not found 

Comment augmenter la limite de file de 1024 à 65535? Toute aide serait appréciée.

Les limites sont spécifiques au process. ulimit est un shell bult-in et ne peut modifier que les limites de ce shell et les process démarrés à partir de ce shell. sudo ulimit n'a aucun sens. Même si cela n'échouera pas, cela n'influencerait que les process lancés par sudo en même time, et il n'y en a pas.

Afin d'augmenter votre limite au-dessus de la limite ssortingcte, vous devez augmenter la limite globale pour tous les users ou définir une limite différente pour votre user spécifique . Ces limites sont définies dans /etc/security/limits.conf (ou /etc/security/limits.d/ ). Editez ce file et créez une nouvelle input pour votre user:

 sunpy hard nofile 65535 

Enregistrez le file et ouvrez une nouvelle session. Ensuite, appeler ulimit -Hn à l'intérieur de la nouvelle session devrait vous montrer la nouvelle limite ulimit -Hn pour le nombre de files ouverts. Pour utiliser la limite ulimit -n 65535 , vous devez augmenter votre limite douce actuelle en appelant ulimit -n 65535 .

Bien sûr, vous pouvez également modifier votre limite /etc/security/limits.conf permanente en spécifiant soft au lieu de hard dans votre /etc/security/limits.conf . Ensuite, vous n'avez pas à augmenter votre limite logicielle manuellement, mais la nouvelle limite s'appliquera pour chacune de vos sessions.

Oh, et d' après cette réponse, il semble que vous devez éditer /etc/pam.d/common-session* et append:

 session required pam_limits.so 

si ce n'est pas déjà fait. Autrement, ces limites ne s'appliqueront pas à vos sessions.

sudo ulimit échoue car ulimit est embedded et sudo prend un exécutable comme premier argument qu'il searchra dans PATH . sudo cd / échoue pour la même raison.

Une solution de contournement est de faire:

 sudo sh -c "ulimit -n 65535 && exec su $LOGNAME" 

qui définit l'ulimit, et restaure l'user d'origine en supprimant les privilèges sudo comme prévu.

Extrait de https://stackoverflow.com/questions/17483723/command-not-found-when-using-sudo-ulimit