Cara menghapus batas ukuran file dump inti

11

Saya ingin menambah batas ukuran maksimum untuk file dump inti sebagai pengguna biasa. Menggunakan bash, saya dapat mengaturnya seperti ini:

$ ulimit -c 100

yang bekerja dengan baik saat pertama kali saya mengaturnya. Namun, saat berikutnya saya menggunakan perintah ini, saya hanya dapat menetapkan batas ini ke nilai yang tidak melebihi 100. Secara umum, saya dapat mengaturnya ke nilai arbitrer hanya saat pertama kali saya menggunakan perintah ini sejak masuk. Semua waktu berikutnya, nilai yang mungkin dibatasi dari atas oleh nilai yang ditetapkan awalnya.

Bagaimana saya bisa membuat ini persisten di beberapa penggunaan perintah?

Peter Bašista
sumber

Jawaban:

9

Per @Peter Bašista menjawab pertanyaannya sendiri:

Pada awalnya, saya pikir ini adalah kesalahan dan itulah sebabnya saya memulai pertanyaan ini. Tapi ternyata itu hanya perilaku yang benar-benar benar. Ternyata pepatah RTFM juga berlaku di sini.

Seperti yang man bashdiungkapkan, ulimitperintah bawaan memiliki parameter tambahan: -Huntuk mengatur apa yang disebut batas keras dan -S untuk mengatur apa yang disebut batas lunak . Selain itu, jika tidak ada pilihan ini diberikan, perilaku default adalah bahwa ulimitmencoba untuk mengatur baik lembut dan batas keras untuk nilai yang sama sekaligus. Dan itu masalahnya.

Sekarang ada kutipan dari bashhalaman manual:

Batas keras tidak dapat ditingkatkan oleh pengguna non-root setelah ditetapkan;

Jadi, ini dia. Penggunaan ulimitperintah yang benar harus selalu mengingat hal ini. Yang paling penting, itu tidak boleh digunakan tanpa -Hatau -Sopsi kecuali Anda yakin tahu apa yang Anda lakukan (yang pada saat itu saya jelas tidak).

Apa yang seharusnya saya lakukan adalah sesuatu seperti ini:

Setelah login: ulimit -H -c unlimited

Setiap kali saya ingin mengubah batas ukuran maksimum core dump ulimit -S -c <new size>

Jadi, itu saja. Saya harap ini bisa membantu seseorang yang mungkin kesulitan dengan masalah yang sama.

Kevin Bowen
sumber