½Ã±×³ÎÀº À¯´Ð½º °è¿ OS ¼¼°è¿¡¼ ``ÀÎÅÍ·´¼Ç (interruption, Áß´Ü)"ÀÇ °£´ÜÇÑ ÇüÅ·ΠÀ¯´Ð½ºÀÇ ¾ÆÁÖ ¿À·¡µÈ ºÎºÐÀÌ´Ù. ÇÁ·Î¼¼½º´Â ´Ù¸¥ ÇÁ·Î¼¼½º¿¡ ``½Ã±×³Î"À» ¼³Á¤ÇÒ ¼ö ÀÖÀ¸¸ç (kill(1) ¶Ç´Â kill(2) ¸¦ »ç¿ëÇÏ¿©) ´Ù¸¥ ÇÁ·Î¼¼½º´Â ºñµ¿±âÀûÀ¸·Î ½Ã±×³ÎÀ» ¹Þ¾Æ ó¸®ÇÒ ¼ö ÀÖ´Ù. ÇÁ·Î¼¼½º°¡ ¾î¶² ´Ù¸¥ ÇÁ·Î¼¼½º¿¡ ½Ã±×³ÎÀ» º¸³»´Â °ÍÀÌ Çã¿ëµÇ±â À§Çؼ´Â ±× ÇÁ·Î¼¼½º°¡ ·çÆ® ±ÇÇÑÀ» °®°Å³ª ½ÇÁ¦ ¶Ç´Â À¯È¿ »ç¿ëÀÚ ID °¡ ½Ã±×³ÎÀ» ¹Þ´Â ÇÁ·Î¼¼½ºÀÇ ½ÇÁ¦ ¶Ç´Â À¯º¸µÈ (saved) set-user-ID ¿Í µ¿ÀÏÇØ¾ß ÇÑ´Ù. ±×·¯³ª ¸î¸î ½Ã±×³ÎÀº ´Ù¸¥ ¹æ¹ýÀ¸·Î º¸³»Áú ¼ö ÀÖ´Ù. ƯÈ÷ SIGURG ´Â TCP/IP ÀÇ out of band (OOB) ¸Þ½ÃÁö¸¦ ÅëÇÑ ³×Æ®¿öÅ©¸¦ ÅëÇØ Àü´ÞµÉ ¼ö ÀÖ´Ù.
½Ã±×³ÎÀÌ À¯´Ð½ºÀÇ ¾ÆÁÖ ¿À·¡µÈ ºÎºÐÀÓ¿¡µµ ºÒ±¸ÇÏ°í ½Ã±×³ÎÀº ¿©·¯°¡Áö ±¸Çö¿¡¼ ´Ù¸¥ ÀÇ¹Ì Ã¼°è¸¦ °®´Â´Ù. ±âº»ÀûÀ¸·Î "´Ù¸¥ ½Ã±×³ÎÀ» ó¸®ÇÏ´Â µ¿¾È ½Ã±×³ÎÀÌ ¹ß»ýÇÏ¸é ¾î¶² ÀÏÀÌ »ý±æ±î?" ÇÏ´Â Áú¹®ÀÌ ÇÑ ¿¹°¡ µÉ ¼ö Àִµ¥ »õ·Î¿î GNU libc ¶óÀ̺귯¸®º¸´Ù ¿À·¡µÈ ¸®´ª½º libc 5 ´Â ¾î¶² ½Ã±×³Î ¿¬»ê¿¡ ´ëÇØ ÀÏ·ÃÀÇ ´Ù¸¥ ÀÇ¹Ì Ã¼°è¸¦ »ç¿ëÇß´Ù. ½Ã±×³Î Çڵ鷯³»¿¡¼ C ¶óÀ̺귯¸® ÇÔ¼ö¸¦ È£ÃâÇÏ´Â °ÍÀÌ ÇʼöÀûÀ¸·Î ¾ÈÀüÇÏÁö´Â ¾ÊÀºµ¥ °¢ È£Ãâ¿¡ ´ëÇØ ¹®¼¸¦ Á¶»çÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ´õ¿í ÀÚ¼¼ÇÑ Á¤º¸´Â glibc FAQ ¸¦ º¸¶ó (¾î¶² ½Ã½ºÅÛ¿¡¼´Â /usr/doc/glibc-*/FAQ ¿¡¼ ¾òÀ» ¼ö ÀÖ´Ù).
»õ·Î¿î ÇÁ·Î±×·¥¿¡ ´ëÇؼ´Â ´ÜÁö POSIX ½Ã±×³Î ½Ã½ºÅÛ (BSD ¿¡ ±âÃÊÇÑ) À» »ç¿ëÇضó; ÀÌ´Â ³Î¸® Áö¿øµÇ°í ÀÖÀ¸¸ç ¿À·¡µÈ ½Ã±×³Î ½Ã½ºÅÛÀÌ °®°í ÀÖ´ø ¹®Á¦°¡ ¾ø´Ù. POSIX ½Ã±×³Î ½Ã½ºÅÛÀº sigset_t µ¥ÀÌŸ ŸÀÔ »ç¿ë¿¡ ±âÃÊÇϴµ¥ sigemptyset(), sigillset(), sigaddset(), sigdelset() °ú sigismember() µéÀÇ ÀÏ·ÃÀÇ ¿¬»êÀ» ÅëÇØ Á¶ÀÛµÉ ¼ö ÀÖ´Ù. sigsetops(3) ¿¡¼ ÀÌ¿¡ ´ëÇØ ÀÐÀ» ¼ö Àִµ¥ manipulate ½Ã±×³Î Çڵ鸵À» ¼³Á¤Çϱâ À§Çؼ´Â sigaction(2), sigprocmask(2) ¿Í sigsuspend(2) ¸¦ »ç¿ëÇضó (´õ¿í ÀÚ¼¼ÇÑ Á¤º¸´Â ¸Ç ÆäÀÌÁö¸¦ º¸¶ó).
ÀϹÝÀûÀ¸·Î ¸ðµç ½Ã±×³Î Çڵ鷯´Â ¸Å¿ì ª°í °£´ÜÇÏ°Ô ¸¸µé°í °æÀï »óŸ¦ ÁÖÀÇÇؼ ã¾Æ¶ó. ½Ã±×³ÎÀº º»ÁúÀûÀ¸·Î ºñµ¿±âÀûÀ̱⠶§¹®¿¡ ½±°Ô °æÀï »óŸ¦ ¾ß±âÇÒ ¼ö ÀÖ´Ù.
¼¹ö¿¡ ´ëÇØ °øÅëµÈ °ü·Ê°¡ Á¸ÀçÇÑ´Ù: SIGHUP ½Ã±×³ÎÀ» ¹ÞÀ¸¸é ¸ðµç ·Î±× ÆÄÀÏÀ» ´Ý°í ¼³Á¤ÆÄÀÏÀ» ´Ù½Ã ¿¾î ´Ù½Ã ÀÐÀº ÈÄ ·Î±× ÆÄÀÏÀ» ´Ù½Ã ¿¾î¾ß ÇÑ´Ù. À̸¦ ÅëÇØ ¼¹ö¸¦ ÁßÁöÇÏÁö ¾Ê°í Àç¼³Á¤ÇÒ ¼ö ÀÖÀ¸¸ç µ¥ÀÌŸ ¼Õ½Ç¾øÀÌ ·Î±× ¼øȯ (rotation) À» ÇÒ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ °ü·Ê¸¦ µû¶ó¾ß ÇÏ´Â ¼¹ö¸¦ ÀÛ¼ºÇÏ°í ÀÖ´Ù¸é À̸¦ Áö¿øÇϱ⠹ٶõ´Ù.
Michal Zalewski [2001] Àº ½Ã±×³Î Çڵ鷯°¡ ¾î¶»°Ô ¾Ç¿ëµÇ´Â°¡¿¡ ´ëÇÑ ÈǸ¢ÇÑ Áöµµ¼¸¦ ÀÛ¼ºÇÏ¿´°í ½Ã±×³Î °æÀï ¹®Á¦¸¦ Á¦°ÅÇÏ´Â ¹æ¹ý¿¡ ´ëÇÑ ±Ç°í¸¦ ÇÏ¿´´Ù. ÀúÀÚ´Â ´õ¿í ÀÚ¼¼ÇÑ Á¤º¸¸¦ À§ÇØ ¿ä¾àÀ» º¸±â¸¦ ±ÇÇÑ´Ù; ´ÙÀ½Àº ÀúÀÚÀÇ ±Ç°í¾ÈÀ¸·Î Michal ÀÇ °Í°ú À¯»çÇÑ °ÍÀÌ´Ù:
°¡´ÉÇÑ ½Ã±×³Î Çڵ鷯¸¦ ¹«Á¶°ÇÀûÀ¸·Î ƯÁ¤ Ç÷¡±×·Î ¼³Á¤ÇÏ°í ±× ¹ÛÀÇ ´Ù¸¥ °ÍÀº ÇÏÁö ¸¶¶ó.
´õ¿í º¹ÀâÇÑ ½Ã±×³Î Çڵ鷯°¡ ÇÊ¿äÇÏ´Ù¸é ½Ã±×³Î Çڵ鷯¿¡¼ »ç¿ëÇϱ⿡ ¾ÈÀüÇÏ´Ù°í ¸íÈ®ÇÏ°Ô ÁöÀûµÈ È£Ãâµé¸¸ »ç¿ëÇضó. ´ëºÎºÐÀÇ ½Ã½ºÅÛ¿¡¼ ½Ã±×³Î¿¡ ´ëÇØ º¸È£µÇÁö ¾Ê´Â C ÀÇ malloc() ¶Ç´Â free() ¶Ç´Â À̵鿡 ÀÇÁ¸ÇÏ´Â (printf() °è¿ ¹× syslog()) ÇÔ¼öµéÀ» »ç¿ëÇÏÁö ¸¶¶ó. ÀçÁøÀÔ (re-entry) À» ÇÇÇϱâ À§ÇØ Àü¿ª Ç÷¡±×¿¡ ´ëÇÑ °Ë»ç¸¦ ÀÌ¿ëÇØ ºñº¸¾ÈÀûÀÎ ¶óÀ̺귯¸® È£Ãâ¿¡ ´ëÇÑ È£ÃâÀ» ``wrap" ÇÒ ¼öµµ ÀÖÁö¸¸ À̸¦ ÃßõÇÏÁö´Â ¾Ê´Â´Ù.
ÇÁ·Î±×·¥³»ÀÇ ¸ðµç ºñ¿øÀÚÀû ¿¬»êµ¿¾È°ú ½Ã±×³Î Çڵ鷯³»¿¡¼ÀÇ ½Ã±×³Î Àü´ÞÀ» ºí·ÏÇضó.