Enable Core Dumps for Daemons or Services in Red Hat Enterprise Linux
โดยทั่วไปแล้ว daemon เป็นการทำงานในรูปแบบ background process การสั่งให้ deamond ทำงานสามารถทำได้โดยใช้ service command หรือ ใช้ init script การเปิดใช้งาน core dump (ดูรายละเอียดของ core dump ได้ที่ Core dump file) เพื่อใช้งานการ debug ของโปรแกรมหรือตามความต้องการเพื่อตรวจสอบข้อผิดพลาดของโปรแกรม การ enable core dump สำหรับ daemon หรือ service สามารถทำได้ดังนี้
- แก้ไขไฟล์ /etc/profile ด้วยคำสั่ง vi /etc/profile
แก้ไขบรรทัด
ulimit -S -c 0 > /dev/null 2>&1
แก้ไขเป็น
ulimit -c unlimited >/dev/null 2>&1
-
แก้ไขไฟล์ /etc/sysconfig/init ด้วยการเพิ่ม DAEMON_COREFILE_LIMIT=‘unlimited’ เข้าไป
-
โดยทั่วไปแล้ว core dump ไม่สามารถสร้างโดยโปรแกรมที่รันด้วย setuid เพื่อป้องกันข้อมูลรั่วไหลออกไปยัง user อื่น ดังนั้นเราจึงต้องแก้ไขให้สามารถทำ core dump ใน setuid program ด้วย
- สำหรับ Red Hat Enterprise Linux 5:
echo 2 > /proc/sys/fs/suid_dumpable- สำหรับ Red Hat Enterprise Linux 4:
echo 2 > /proc/sys/kernel/suid_dumpable- สำหรับ Red Hat Enterprise Linux 3:
echo 1 > /proc/sys/kernel/core_setuid_ok -
แก้ไขไฟล์ /etc/sysctl.conf เพื่อเพิ่มข้อความด้านล่างลงไป
fs.suid_dumpable = 2 # RHEL 5 only
kernel.suid_dumpable = 2 # RHEL 4 only
kernel.core_setuid_ok = 1 # RHEL 3 only
kernel.core_pattern = /tmp/core
- Reload settings ด้วยการใช้คำสั่ง sysctl -p
ขอขอบคุณ Red Hat สำหรับข้อมูลครับ