Pour résoudre le problème dans https://unix.stackexchange.com/a/446428/674, j'ai suivi https://stackoverflow.com/a/17483998/156458, mais il ne définit pas la taille limite du fichier principal ?
$ sudo sh -c "ulimit -c 1024 && exec su t"
$ ulimit -c
0
-
Cette méthode modifie-t-elle temporairement la taille limite du fichier principal uniquement pour le shell actuel, ou de manière permanente pour tous les shells de tous les utilisateurs ou de l'utilisateur actuel ?
-
Mise à jour : Le message d'origine https://stackoverflow.com/a/17483998/156458 et https://unix.stackexchange.com/a/238413/674 et https://unix.stackexchange.com/a/169035/674 sont tous recommandés en utilisant
sudo sh -c "ulimit -c 1024 && exec su $LOGNAME"
. Mais les deuxulimit -c 1024
etexec su $LOGNAME"
n'affecte que le shell créé parsudo
, alors quel est le but de la commande ?exec su $LOGNAME"
ne fait rien non plus de significatif pour utiliser la limite modifiée.
Remarque : Je me concentre sur la raison pour laquelle la méthode ci-dessus ne fonctionne pas, bien qu'il existe d'autres moyens de contourner le problème :
-
Je devrais mettre la commande qui utilise la nouvelle valeur limite dans le
shell exécuté par sudoex.
$ sudo sh -c "ulimit -c 1024 && sleep 100" ^Quit $ ls core
- Je pourrais aussi essayer de modifier
/etc/security/limits.conf
.
Réponse acceptée :
Selon la page de manuel, ulimit
"Fournit un contrôle sur les ressources disponibles pour le shell et les processus démarrés par celui-ci". Donc le ulimit
la valeur est valide pour le shell actuel.
Vous appelez ulimit
dans un sous-shell, et quand il se termine, vous revenez à la valeur par défaut ulimit
valeur.
[[email protected] ~]# ulimit -c
0
[[email protected] ~]# ulimit -c 1024
[[email protected] ~]# ulimit -c
1024