Um das Problem in https://unix.stackexchange.com/a/446428/674 zu lösen, bin ich https://stackoverflow.com/a/17483998/156458 gefolgt, aber es wird keine Kerndatei-Grenzgröße festgelegt?
$ sudo sh -c "ulimit -c 1024 && exec su t"
$ ulimit -c
0
-
Ändert sich auf diese Weise die maximale Größe der Kerndatei vorübergehend nur für die aktuelle Shell oder dauerhaft für alle Shells aller Benutzer oder des aktuellen Benutzers?
-
Aktualisierung: Die ursprünglichen Beiträge https://stackoverflow.com/a/17483998/156458 und https://unix.stackexchange.com/a/238413/674 und https://unix.stackexchange.com/a/169035/674 werden alle empfohlen mit
sudo sh -c "ulimit -c 1024 && exec su $LOGNAME"
. Aber beideulimit -c 1024
undexec su $LOGNAME"
wirkt sich nur auf die vonsudo
erstellte Shell aus , was ist also der Zweck des Befehls?exec su $LOGNAME"
macht auch nichts Sinnvolles, um das geänderte Limit zu nutzen.
Hinweis: Ich konzentriere mich darauf, warum der obige Weg nicht funktioniert, obwohl es andere Möglichkeiten gibt, das Problem zu umgehen:
-
Ich sollte den Befehl, der den neuen Grenzwert verwendet, in die
ausgeführt wird
Shell einfügen, die von sudoz. B.
$ sudo sh -c "ulimit -c 1024 && sleep 100" ^Quit $ ls core
- Ich könnte auch versuchen,
/etc/security/limits.conf
zu ändern .
Akzeptierte Antwort:
Laut Manpage ulimit
„liefert die Kontrolle über die Ressourcen, die der Shell und den von ihr gestarteten Prozessen zur Verfügung stehen“. Also das ulimit
Wert ist für die aktuelle Shell gültig.
Sie rufen ulimit
auf in einer Subshell, und wenn sie beendet wird, sind Sie wieder beim Standard-ulimit
Wert.
[[email protected] ~]# ulimit -c
0
[[email protected] ~]# ulimit -c 1024
[[email protected] ~]# ulimit -c
1024