File inti adalah gambar dari suatu proses yang dibuat oleh sistem operasi ketika proses berakhir secara tak terduga. File-file inti dibuat ketika sebuah program melakukan kesalahan karena bug, atau pelanggaran terhadap CPU atau mekanisme perlindungan memori. Sistem operasi membunuh program dan membuat file inti.
File ini bisa sangat berguna dalam menentukan apa yang salah dengan suatu proses. Produksi file inti dapat diaktifkan secara default, tergantung pada distribusi dan versi Linux yang Anda miliki.
Jika Anda tidak ingin file inti sama sekali, setel "ulimit -c 0" di file permulaan Anda. Itu default pada banyak sistem; di dalam /etc/profile
kamu dapat menemukan
Karena file terpotong tidak ada gunanya, atur ukuran file inti Linux menjadi "tidak terbatas".
Usage of ulimit Action
ulimit -c # check the current corefile limit
ulimit -c 0 # turn off corefiles
ulimit -c x # set the maximum corefile size to x number of 1024bytes
ulimit -c unlimited # turn on corefiles with unlimited size
ulimit -n unlimited # allows an unlimited number of open file descriptors
ulimit -p # size of pipes
ulimit -s # maximum native stack size for a process
ulimit -u # number of user processes
help ulimit #list of other options
File inti ditempatkan ke direktori proses saat ini, tunduk pada izin menulis untuk proses JVM dan ruang disk kosong.
Bergantung pada level kernel, opsi kernel yang berguna tersedia yang memberi corefiles nama yang lebih bermakna. Sebagai pengguna root, opsi sysctl -w kernel.core_users_pid = 1 memastikan bahwa file inti memiliki nama bentuk "Core.PID".
ulimit -S -c 0 > /dev/null 2>&1
Jika Anda menginginkan file inti, Anda perlu meresetnya di .bash_profile Anda sendiri:
ulimit -c 50000
akan memungkinkan file inti tetapi batasi hingga 50.000 byte.
Anda memiliki kontrol lebih besar terhadap file inti di /proc/sys/kernel/
Misalnya, Anda dapat menghapus tag pada pid dengan
echo "0" > /proc/sys/kernel/core_uses_pid
File inti kemudian akan dinamai "inti". Orang-orang melakukan hal-hal seperti itu sehingga pengguna dapat memilih untuk meletakkan file yang tidak bisa ditulis bernama "core" di direktori di mana mereka tidak ingin menghasilkan dump inti. Itu bisa berupa direktori (mkdir core) atau file (sentuh inti; chmod 000 inti).
Tapi mungkin yang lebih menarik yang bisa Anda lakukan:
mkdir /tmp/corefiles
chmod 777 /tmp/corefiles
echo "/tmp/corefiles/core" > /proc/sys/kernel/core_pattern
Semua corefiles kemudian dilempar ke /tmp/corefiles
(jangan mengubah core_uses_pid jika Anda melakukan ini).
Uji ini dengan skrip sederhana:
# script that dumps core
kill -s SIGSEGV $$
Di bawah Ubuntu, pembuatan file inti dikendalikan melalui file /etc/default/collectd
. Anda dapat mengaktifkan pembuatan dump inti dengan menetapkan:
ENABLE_COREFILES=1
Menemukan file inti
Setelah daemon macet, sebuah file akan dibuat di direktori kerjanya saat ini. Secara default, ini pkglocalstatedir
, yaitu prefix/var/lib/collectd
. Jika Anda menginstal paket, kemungkinan besar direktori ini /var/lib/collectd
.
Sumber: AP Lawrence, dan IBM