bash: ulimit: ukuran file inti: tidak dapat mengubah batas: Operasi tidak diizinkan

28

Fedora 12 gcc 4.4.1

Saya melakukan beberapa pemrograman, dan program saya memberi saya tumpukan sampah.

Namun, tidak ada file inti untuk saya periksa.

Jadi saya melakukannya:

ulimit -c unlimited

dan mendapat pesan kesalahan ini:

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

Saya juga mencoba mengatur ulimit ke 50.000 dan masih mendapatkan kesalahan yang sama.

Hasil 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
sumber

Jawaban:

25

Grep untuk pengaturan batas keras dalam file inisialisasi bash Anda. Dari halaman bash man .

Batas keras tidak dapat ditingkatkan setelah ditetapkan; batas lunak dapat ditingkatkan hingga nilai batas keras.

Batas keras diatur melalui flag -H ulimit. Ini dapat diatur dalam file / etc / bash * atau / etc / profile *. Cari pengaturan -Him ulimit.

Aula Darren
sumber
man ulimit: Jika -H maupun -S tidak ditentukan, batas lunak dan kerasnya ditentukan . Jadi mencari -H atau -S tidak selalu akan mengarahkan Anda ke solusi yang benar. Hanya menerima ulimit dan kemudian mencari tahu apakah -H atau -S atau keduanya secara implisit diatur. Tentu saja, ini adalah satu dekade kemudian sehingga perilaku atau halaman manual mungkin telah diperbarui sejak pertanyaan / jawaban asli.
Jim
1

Saya mengalami ini ketika saya menggunakan dropbearserver SSH. Rupanya, dropbear menetapkan beberapa batasan keras sebelum memunculkan shell Anda.

Beralih ke OpenSSH memecahkan masalah.

Barry Brown
sumber
Memang. Tepat di awal main () ada panggilan ke disallow_core (), yang memanggil setrlimit (2). Untuk alasan keamanan tentu saja, tetapi harus ada cara yang lebih baik. github.com/mkj/dropbear/blob/master/svr-main.c
Sundae