bash: ulimit: core Dateigröße: kann nicht geändert werden limit: Operation nicht erlaubt

28

Fedora 12 gcc 4.4.1

Ich programmiere gerade, und mein Programm hat mir einen Stapelspeicherauszug gegeben.

Es gibt jedoch keine Kerndatei, die ich untersuchen könnte.

So tat ich:

ulimit -c unlimited

und bekam diese Fehlermeldung:

bash: ulimit: core file size: cannot modify limit: Operation not permitted

Ich habe auch versucht, ulimit auf 50000 zu setzen und trotzdem den gleichen Fehler erhalten.

Die Ergebnisse von ulimit -a:

$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 12275
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
ant2009
quelle

Antworten:

25

Suchen Sie in Ihren Bash-Initialisierungsdateien nach einer festen Grenze. Von der Bash-Manpage .

Ein festes Limit kann nicht erhöht werden, wenn es einmal festgelegt wurde. Eine weiche Grenze kann bis zum Wert der harten Grenze erhöht werden.

Das harte Limit wird über das Flag ulimit -H eingestellt. Es kann in / etc / bash * - oder / etc / profile * -Dateien festgelegt werden. Suchen Sie nach einer ulimit -Hc-Einstellung.

Darren Hall
quelle
man ulimit: Wenn weder -H noch -S angegeben ist, werden sowohl die weichen als auch die harten Grenzen festgelegt . Wenn Sie also nach -H oder -S suchen, gelangen Sie nicht unbedingt zur richtigen Lösung. Grep einfach nach ulimit und finde dann heraus, ob -H oder -S oder beide implizit gesetzt sind. Natürlich ist dies ein Jahrzehnt später, sodass das Verhalten oder die Manpages möglicherweise seit der ursprünglichen Frage / Antwort aktualisiert wurden.
Jim
1

Das ist mir passiert, als ich dropbeareinen SSH-Server verwendete. Anscheinend setzt Dropbear einige harte Grenzen, bevor es deine Muschel hervorbringt.

Der Wechsel zu OpenSSH löste das Problem.

Barry Brown
quelle
Tatsächlich. Gleich zu Beginn von main () gibt es einen Aufruf von disallow_core (), der setrlimit (2) aufruft. Aus Sicherheitsgründen natürlich, aber es muss einen besseren Weg geben. github.com/mkj/dropbear/blob/master/svr-main.c
Sundae