web-dev-qa-db-fra.com

Comment supprimer la limite sur la taille du fichier core dump

J'aimerais augmenter la taille maximale des fichiers de vidage principaux en tant qu'utilisateur régulier. En utilisant bash, je peux le configurer comme suit:

$ ulimit -c 100

qui fonctionne bien la première fois que je l'ai mis. Cependant, la prochaine fois que j'utilise cette commande, je ne peux définir cette limite que sur une valeur ne dépassant pas 100. En général, je ne peux lui attribuer une valeur arbitraire que la première fois que j'utilise 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 cette tâche persistante lors de multiples utilisations de la commande?

11
Peter Bašista

La réponse de @ Peter Bašista à 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 simplement un comportement parfaitement correct. Il s’avère que le dicton RTFM s’applique également ici.

Comme man bash révèle, la commande intégrée ulimit a des paramètres supplémentaires: -H pour définir les limites dures et -S pour les soi-disant limites douces . De plus, si aucune de ces options n’est donnée, le comportement par défaut est que ulimit essaie de définir les limites logicielles et matérielles à la même valeur en même temps. Et c'était le problème.

Il existe maintenant une citation de la page de manuel bash:

Une limite stricte ne peut pas être augmentée par un utilisateur non root une fois définie.

Alors, on y va. L’utilisation correcte de la commande ulimit devrait toujours l’avoir à l’esprit. Plus important encore, il ne devrait jamais être utilisé sans les options -H ou -S sauf si vous êtes sûr de savoir ce que vous faites (ce qui, à l'époque, ne l'était évidemment pas).

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

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

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

Donc, c'est à peu près tout. J'espère que cela pourra aider quelqu'un qui pourrait avoir des difficultés avec un problème similaire.

9
Kevin Bowen