Comment supprimer la limite de taille de fichier de vidage de mémoire

11

Je voudrais augmenter la taille maximale des fichiers de vidage mémoire en tant qu'utilisateur normal. En utilisant bash, je peux le définir comme ceci:

$ ulimit -c 100

qui fonctionne bien la première fois que je l'ai réglé. Cependant, la prochaine fois que j'utiliserai cette commande, je ne pourrai définir cette limite que sur une valeur ne dépassant pas 100. En général, je ne pourrai la définir sur une valeur arbitraire que la première fois que j'utiliserai cette commande depuis la connexion. Toutes les fois suivantes, les valeurs possibles sont limitées par le haut par la valeur initialement définie.

Comment puis-je rendre cela persistant dans plusieurs utilisations de la commande?

Peter Bašista
la source

Réponses:

9

Selon la réponse de @Peter Bašista dans sa propre question:

Au début, je pensais que c'était une erreur et c'est pourquoi j'ai commencé cette question. Mais il s'est avéré que c'est tout simplement un comportement parfaitement correct. Il s'avère que le dicton RTFM s'applique ici aussi.

Comme le man bashrévèle, la ulimitcommande intégrée a des paramètres supplémentaires: -Hpour le réglage des soi-disant durs limites et -S pour le réglage des soi-disant douces limites. De plus, si aucune de ces options sont disponibles , le comportement par défaut est que ulimittente de définir à la fois le soft et les limites strictes à la même valeur à la fois. Et c'était ça le problème.

Maintenant, il y a une citation de la bashpage de manuel:

Une limite stricte ne peut pas être augmentée par un utilisateur non root une fois qu'elle est définie;

Alors voilà. L'utilisation correcte de la ulimitcommande doit toujours avoir cela à l'esprit. Plus important encore, il ne devrait jamais être utilisé sans -Hou sans -Soptions, sauf si vous êtes sûr de savoir ce que vous faites (ce que je n'étais évidemment pas à l'époque).

Ce que j'aurais dû faire est quelque chose comme ceci:

Après la connexion: ulimit -H -c unlimited

Chaque fois que je souhaite modifier la limite maximale de taille de vidage de mémoire ulimit -S -c <new size>

Alors, c'est à peu près tout. J'espère que cela pourrait aider quelqu'un qui pourrait avoir un problème similaire.

Kevin Bowen
la source