modifier et appliquer limits.conf sans redémarrer

16

J'ai ajouté une ligne /etc/security/limits.confpour augmenter le nombre de fichiers ouverts.

*    hard nofile 4096
root hard nofile 16384

Cependant, lorsque je lance, ulimit -nil indique 1024, ce qui est la valeur par défaut. J'ai fait une déconnexion et une connexion mais je vois toujours 1024. Comment puis-je appliquer la modification?

mahmood
la source

Réponses:

8

Si vous utilisez bash, ulimit -nn'affichera que la limite logicielle . Pour obtenir la limite stricte, vous devez le faire ulimit -Hn.

Sur mon système, je vois ceci:

$ ulimit -n
1024
$ ulimit -Hn
4096
Flup
la source
16

Modifications apportées par la ulimitcommande:

$ ulimit -n 4096
$ ulimit -Hn 16384

s'applique uniquement à l'utilisateur et à la session actuels. Pour le rendre permanent, vous devez le modifier /etc/security/limits.confen ajoutant vos limites:

* soft nofile 4096
* hard nofile 16384

Cependant, le caractère générique *ne s'applique pas à l' rootutilisateur. Pour ce faire, vous devez le déclarer explicitement:

* soft nofile 4096
* hard nofile 16384
root soft nofile 4096
root hard nofile 16384

Ces limites seront appliquées après le redémarrage .

Si vous souhaitez appliquer des modifications sans redémarrage , modifiez /etc/pam.d/common-sessionen ajoutant cette ligne à la fin du fichier:

session required pam_limits.so

Lors de la prochaine connexion, vous devriez voir les limites mises à jour, vous pouvez les vérifier (limites logicielles et strictes):

$ ulimit -a
$ ulimit -Ha
Tombart
la source
2
J'ai eu un problème avec cette approche qui était vraiment étrange. J'utilise Ubuntu 14 et activé pam_limits.sodans /etc/pam.d/common-session. J'ai configuré dans l' /etc/security/limits.confutilisateur x pour avoir des limites strictes et souples pour nofile64000. me montre sudo -u xalors ulimit -aque les modifications n'ont pas été appliquées. J'ai réalisé que suet sudoavoir des configurations différentes pam ainsi afin de le faire fonctionner correctement , je devais permettre au pam_limits.sodans /etc/pam.d/common-session-noninteractive. Si vous vous demandez quel est le cas d'utilisation - j'utilise ansible et sudo pour changer d'utilisateur.
hahcho
1
Pour une raison quelconque, j'ai dû l'ajouter /etc/pam.d/common-session-noninteractivepour que cela fonctionne.
Sumit