Ãâó :
http://dakrink.tistory.com/21¸®´ª½º¿¡¼ ÇÁ·Î±×·¥ °³¹ßÀ» ÇÏ´Ù°¡ º¸¸éÀº ¼¼±×¸ÕÆ® ÆúÆ®°¡ ³ª´Â °æ¿ì DebuggingÀ» ÇؾߵǴ »óȲÀÌ ÀÖÀ» ¼ö ÀÖ´Ù. ±×·±µ¥ ¿ì¸®ÀÇ ·¹µåÇò ±âº»ÀûÀ¸·Î Coredump¸¦ ³²±âÁö ¾Êµµ·Ï ¼³Á¤ÀÌ µÇ¾î ÀÖ¾î¼ °ï¶õÇÑ °æ¿ì°¡ ÀÖ´Ù.RHEL¿¡¼ Coredump¸¦ ±â·ÏÇϵµ·Ï ¼³Á¤ÇÏ´Â °ÍÀ» ¼³¸íÇÑ´Ù.
Coredump »ý¼ºÀ» À§ÇÑ ¹æ¹ýÀ¸·Î´Â µÎ°¡Áö°¡ ÀÖ´Ù. ÇÑ°¡Áö´Â ½Ã½ºÅÛ¿¡¼ ¹«Á¶°ÇÀûÀ¸·Î coredump¸¦ »ý¼ºÇϵµ·Ï ÇÏ´Â °æ¿ì°¡ ÀÖ°í ´Ù¸¥ ÇÑ°¡Áö´Â init script¿¡¼ ³²±âµµ·Ï ÇÏ´Â °æ¿ì°¡ ÀÖ´Ù.
1. 'core dump' ´Â ¹«¾ùÀΰ¡?
core dump ´Â process µéÀÇ image copy ÀÌ´Ù.ÀÌ°ÍÀº file ÀÇ ÇüÅ·Π±¸¼ºµÇ¸ç ÇöÀç ¼öÇàÁßÀÎ directory ¿¡ ¹ß»ýÇÑ´Ù.
2. ¹ß»ýµÇ´Â ¿øÀÎ
¿øÀÎÀº ¿©·¯°¡Áö°¡ ÀÖÀ» ¼ö ÀÖÀ¸³ª ´ëüÀûÀ¸·Î ÀÓÀÇÀÇ process °¡ OS°¡ ¿øÇÏÁö ¾Ê´Â ÀÏÀ» ¼öÇàÇÏ·Á ÇÒ¶§ ¹ß»ýÇÑ´Ù.
°øÅëÀûÀ¸·Î program ÀÌ ÀÚ½ÅÀÇ ¿µ¿ª¹ÛÀÇ memory ¸¦ access ÇÏ°íÀÚ ½ÃµµÇÒ¶§. program ÀÌ °í°¥µÇ¾ú°Å³ª »ç¿ëÀÌ ºÒ°¡´ÉÇÑ resource ¸¦ ¾ò°íÀÚ ÇÒ¶§ Illegal instructions ¿¡ ÀÇÇØ ¹«¾ð°¡°¡¼öÇàµÇ·Á ÇÒ¶§.
Unix systems ¿¡¼´Â processÀÇ ºÒ¹ýÀûÀÎ ÇàÀ§¸¦ ±ÝÇÏ°íÀÚ signal À» º¸³»´Âµ¥ ÀÌ°ÍÀº user°¡ ÀÌ·¯ÇÑ signal À» manual ÇÏ°Ô º¸³¿À¸·Î½á ¹ß»ý½Ãų¼öµµ ÀÖ´Ù.
3. ½Ã½ºÅÛ¿¡¼ Coredump¸¦ ³²±âµµ·Ï ¼³Á¤
/etc/profile ÆÄÀÏÀ» vi³ª ´Ù¸¥ ¿¡µðÅÍ ÇÁ·Î±×·¥À» ¿¾î¼ ´ÙÀ½ÀÇ ¶óÀÎÀ» ã¾Æº¸ÀÚ.
- ulimit -S -c 0 > /dev/null 2>&1
À§¿¡ ÁÙÀÌ Coredump¸¦ ³²±âÁö ¾Êµµ·Ï ÇÏ´Â ÁÖ¹üÀÌ´Ù.
±× ºÎºÐÀ» ´ÙÀ½°ú °°ÀÌ ¼öÁ¤Ç϶ó.
- ulimit -c unlimited > /dev/null 2>&1
/etc/profile¸¦ ¼öÁ¤ÇϸéÀº ½Ã½ºÅÛ ÀüüÀûÀ¸·Î ¿µÇâÀ» ¹Þ´Â´Ù. ¸¸¾à¿¡ ½Ã½ºÅÛ ÀüüÀûÀ¸·Î ¿µ
ÇâÀ» ¹ÞÁö ¾Ê°í ÀÚÁÖ »ç¿ëÇÏ´Â ½Ã½ºÅÛ °èÁ¤¿¡¼¸¸ ¿µÇâÀ» ¹Þ°í ½Í´Ù¸éÀº /etc/profile¸¦ ¼öÁ¤
ÇÏÁö ¸»°í ~/.bash_profile³ª ~/.bashrc¸¦ ¼öÁ¤Çϵµ·Ï ÇÑ´Ù.
/etc/profile ¸»°í Ä¿³Î ÆĶó¸ÞŸ¿¡µµ ±âº»ÀûÀ¸·Î Coredump¸¦ ³²±âÁö ¾Êµµ·Ï µÇ¾î ÀÖ´Ù.
/etc/sysctl.conf¿¡ ´ÙÀ½ÀÇ ºÎºÐÀ» ±â¼úÇÑ´Ù.
- kernel.suid_dumpable = 1
- kernel.core_uses_pid = 1
¼³Á¤À» Ãß°¡ ÇÑ µÚ¿¡ sysctl -p·Î Ä¿³Î ÆĶó¸ÞÅ͸¦ Áö±Ý ÇöÀç ½Ã½ºÅÛ¿¡ ¹Ý¿µÇÏ´Â °ÍÀ» ÀØÁö
¸»¾î¾ß ÇÑ´Ù. ¾È±×·¯¸éÀº ÀçºÎÆà µÇ°í³ª¼¾ß ½Ã½ºÅÛ¿¡ ¹Ý¿µÀÌ µÈ´Ù.
4. Init script·Î ½ÇÇàÇÏ´Â µ¥¸ó¿¡ Coredump ¼³Á¤ ¹æ¹ý RHELÀÇ °æ¿ì init script·Î ½ÇÇàÇÏ´Â µ¥¸ó¿¡ ´ëÇØ initscript package¿¡¼ coredump¸¦ ³²±â
Áö ¾Êµµ·Ï °ü¸®ÇÏ°í ÀÖ´Ù.
¸¸¾à¿¡ /etc/init.d/httpd¿¡ ´ëÇØ coredump¸¦ ³²±âµµ·Ï ¼¼ÆÃÇÏ·Á¸éÀº ´ÙÀ½°ú °°ÀÌ ¼öÁ¤Çϵµ
·Ï ÇÑ´Ù.
/etc/sysconfig/init¿¡ ´ÙÀ½ÀÇ ¶óÀÎÀ» Ãß°¡ ÇÑ´Ù.
- DAEMON_COREFILE_LIMIT='unlimited'
ÀÌ ¼³Á¤À» init script·Î ½ÇÇàÇÏ´Â ¸ðµç ½ºÅ©¸³Æ®¿¡ ¿µÇâÀ» ¹ÌÄ¡°Ô µÈ´Ù.
°¢ init script¿¡¼ /etc/init.d/functionsÀ» È£ÃâÇϱâ Àü¿¡
- DAEMON_COREFILE_LIMIT='unlimited'
¸¦ ³Ö¾îÁÖ¸éÀº µÈ´Ù.