signal ±âÃÊ -1
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

ÀÛ¾÷À» ÇÏ´ÂÁß¿¡ ¿¹¿Ü »óȲÀÌ ¹ß»ýÇÏ´Ù.

ȸ»ç¿¡¼­ ¿ì¸®´Â A ¶ó´Â ÀÛ¾÷À» ÇÑ´Ù. °¡Àå ÀÌ»óÀûÀΠȯ°æÀº A ¶ó´Â ÀÛ¾÷À» ½ÃÀÛÇØ¼­ ½°¾øÀÌ °í¹ÎÀ» ÇØ¼­ A ¶ó´Â ÀÛ¾÷À» ÀÏ»çõ¸®·Î ³¡³»´Â °ÍÀÌÁö¸¸ À̰ÍÀº ¾îµð±îÁö³ª ÀÌ»óÀûÀΠȯ°æÀÏ µû¸§À¸·Î, °¢Á¾ÀÇ ÀÎÅÍ·´Æ®(Áß´Ü) ÀÌ »ý±â°Ô µÈ´Ù.

ÀüÈ­°¡ ¿Â´Ù°Å³ª, »ó»ç°¡ ÀÌ·¯Á» ¿Íº¸¶ó°í ÇѴٰųª, ¸ñÀÌ ¸¶¸£´Ù°Å³ª, µµ¿òÀÌ ÇÊ¿äÇØ¼­ ÀüÈ­¸¦ °É¾î¾ßµÉÀÏµî ¼ö¸¹Àº »ç°ÇÀÌ ¹ß»ýÇϸç ÀÌ·¯ÇÑ »ç°ÇÀº ´ë°Ô°¡ ÀÓÀÇÀÇ ½Ã°£¿¡ ¹ß»ýÇÏ°Ô µÈ´Ù(¾ðÁ¦ ¹ß»ýÇÒÁö¸¦ ¾Ë¼ö ¾ø´Ù).

ÀÌ·¯ÇÑ °©ÀÛ½º·± »ç°ÇÀÌ ¹ß»ýµÇ¸é ¿ì¸®´Â ÀÌ¿¡ ´ëÇÑ ÀûÀýÇÑ Á¶Ã븦 ÃëÇØ¾ß ÇÑ´Ù. ÀüÈ­¸¦ ¹Þ°Å³ª, »ó»ç¸¦ ã¾Æ°£´Ù°Å³ª, È­Àå½ÇÀ» °£´Ù°Å³ª ÇØ¾ß ÇÑ´Ù. ȤÀº º°·Î Áß¿äÇÏÁö ¾ÊÀº »ç°ÇÀ̶ó¸é ¹«½ÃÇÒ¼öµµ ÀÖÀ» °ÍÀÌ´Ù. (»ó»çÀÇ È£ÃâÀ» ¹«½ÃÇÏÁö´Â ¸»ÀÚ)

ÇÁ·Î¼¼½ºµµ ¸¶Âù°¡ÁöÀÌ´Ù

¿ì¸®ÀÇ ÇÁ·Î¼¼½ºµµ ¸¶Âù°¡ÁöÀÌ´Ù. ¾î¶²ÀÏÀ» ÇÏ´Â ÇÁ·Î¼¼½º°¡ ÀÖ´Ù¸é ÀÏÀ» ¸¶Ä¡±â ±îÁö °¢Á¾ ¿¹¿Ü »óȲÀÌ ¹ß»ýÇϸç, ¿ì¸®´Â ÀÌ¿¡ ´ëÇØ¼­ ÀûÀýÇÑ Ã³¸®¸¦ ÇØÁÖ¾î¾ß¸¸ÇÑ´Ù. ¹Ù·Î ÀÌ·¯ÇÑ ¿¹¿Ü »óȲÀ» ¹ß»ýÇÏ´Â ¾î¶² ½ÅÈ£¸¦(À̸¦ Å׸é ÀüÈ­º§ ¼Ò¸®°°Àº) °ÍÀ» ¿ì¸®´Â ½Ã±×³ÎÀ̶ó°í ÇÑ´Ù. ÀÌ·¯ÇÑ »óȲµéÀº ¾ðÁ¦ ¹ß»ýÇÒÁö ¸ð¸£´Â ºñµ¿±âÀûÀÎ »ç°ÇµéÀÌ´Ù.

À̸¦Å×¸é »ç¿ëÀÚ°¡ Ctrl+C ۸¦ ´­·¶´Ù´ø°¡, ´©±º°¡ ÇöÀç process ¿¡ kill ½ÅÈ£¸¦ º¸³Â´Ù°Å³ª Çϴ°͵éÀÌ ±×°ÍÀ¸·Î ´ëºÎºÐÀÇ º¹ÀâÇÑ ÇÁ·Î±×·¥µéÀº ÀÌ·¯ÇÑ ºñµ¿±âÀûÀÎ »ç°Ç¿¡ ´ëÇÑ Ã³¸®¸¦ ÇØÁÖ¾î¾ß ¸¸Çϸç(Çö½Ç ¼¼°è¿¡¼­¿Í ¸¶Âù°¡Áö·Î ¹«½ÃÇÒ¼öµµ ÀÖ´Ù), ÀÌ·¯ÇÑ »ç°ÇÀº ¾ðÁ¦ ÀϾÁö ¾Ë¼ö ¾ø´Ù.

½Ã±×³Î¿¡µµ ¿©·¯Á¾·ù°¡ ÀÖ´Ù

»çȸ»ýȰÀÇ ÀÛ¾÷Áß ¹ß»ýÇÏ´Â »óȲÀÌ ¿©·¯°¡Áö°¡ ÀÖµíÀÌ, ÄÄÇ»ÅÍ ½Ã½ºÅÛ »ó¿¡¼­ ¹ß»ýÇÒ¼ö ÀÖ´Â »óȲµµ ¿©·¯°¡Áö°¡ ÀÖ´Ù. ÀÌ´Â OS¿¡ µû¶ó ´Ù¸£°Ô ¼³Á¤µÈ´Ù. OS¿¡¼­ ¾î¶°ÇÑ ½Ã±×³ÎÀ» Áö¿øÇÏ´Â Áö´Â kill ¸í·ÉÀ» ÀÌ¿ëÇØ¼­ ¾Ë¾Æº¼¼ö ÀÖ´Ù. ¾Æ·¡´Â ÇÊÀÚÀÇ ¸®´ª½º ¹Ú½º·Î½á kernel 2.4.3 ¿¡¼­ Áö¿øÇÏ´Â ½Ã±×³ÎÀ» ĸÃÄÇÑ È­¸éÀÌ´Ù.
[root@localhost root]# kill -l  
1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL
5) SIGTRAP      6) SIGABRT      7) SIGBUS       8) SIGFPE
9) SIGKILL     10) SIGUSR1     11) SIGSEGV     12) SIGUSR2
13) SIGPIPE     14) SIGALRM     15) SIGTERM     17) SIGCHLD
18) SIGCONT     19) SIGSTOP     20) SIGTSTP     21) SIGTTIN
22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO
30) SIGPWR      31) SIGSYS      32) SIGRTMIN    33) SIGRTMIN+1
34) SIGRTMIN+2  35) SIGRTMIN+3  36) SIGRTMIN+4  37) SIGRTMIN+5
38) SIGRTMIN+6  39) SIGRTMIN+7  40) SIGRTMIN+8  41) SIGRTMIN+9
42) SIGRTMIN+10 43) SIGRTMIN+11 44) SIGRTMIN+12 45) SIGRTMIN+13
46) SIGRTMIN+14 47) SIGRTMIN+15 48) SIGRTMAX-15 49) SIGRTMAX-14
50) SIGRTMAX-13 51) SIGRTMAX-12 52) SIGRTMAX-11 53) SIGRTMAX-10
54) SIGRTMAX-9  55) SIGRTMAX-8  56) SIGRTMAX-7  57) SIGRTMAX-6
58) SIGRTMAX-5  59) SIGRTMAX-4  60) SIGRTMAX-3  61) SIGRTMAX-2
62) SIGRTMAX-1  63) SIGRTMAX
º¸Åë 32¹ø±îÁöÀÇ ½Ã±×³ÎÀº ´ëºÎºÐÀÇ UNIX °è¿­¿¡¼­ ºñ½ÁÇÑ °ªÀ» º¸¿©ÁÖ¸ç, 33¹øºÎÅÍ 62¹ø±îÁö´Â ¾Æ¸¶µµ OS ¸¶´Ù ¾à°£½ÄÀÇ Â÷À̸¦ º¸¿©ÁÙ°ÍÀÌ´Ù. Linux »ó¿¡¼­ 33 ¹ø ºÎÅÍ 62 ¹ø±îÁö´Â ¸®¾óŸÀÓ ½Ã±×³ÎÀ» À§Çؼ­ ¿¹¾àµÈ ½Ã±×³ÎµéÀÌ´Ù. ¸®¾óŸÀÓ ½Ã±×³ÎÀº ¼³¸íÇÒ²² ²Ï ¸¹À½À¸·Î, µû·Î ±â»ç¸¦ ¸¸µé¾î ´Ù·çµµ·Ï ÇϰڴÙ.

°¢°¢ÀÇ ½Ã±×³ÎÀº int ÇüÀÇ ¼ýÀڷΠǥ½ÃµÇ´Âµ¥, ½Ã±×³Î ¹øÈ£¿¡ µû¶ó¼­ ´Ù¸¥ »óȲÀ» ³ªÅ¸³½´Ù. ¸ðµç ½Ã±×³Î¿¡ ´ëÇØ¼­ ¼³¸íÇϱ⿣ ¾çÀÌ Á» ¸¹À¸¹Ç·Î ±×Áß Áß¿äÇÑ ½Ã±×³Î¸¸À» Á¤¸®Çϵµ·Ï ÇϰڴÙ.
½Ã±×³Î À̸§ ¼³¸í
SIGHUP Å͹̳ÎÀ» Àоî¹ö·ÈÀ»¶§ ¹ß»ýÇÑ´Ù.
SIGABRT ÇÁ·Î±×·¥ÀÇ ºñÁ¤»óÁ¾·á½Ã ¹ß»ýÇÑ´Ù.
SIGINT Control-C ³ª DELETE ۸¦ ÀÔ·ÂÇßÀ»¶§ ¹ß»ýÇÑ´Ù.
SIGIO ºñµ¿±âÀûÀÎ ÀÔÃâ·ÂÀÌ ¹ß»ýÇßÀ»¶§
SIGKILL ÇÁ·Î¼¼½º¸¦ Á×À̱â À§Çؼ­
SIGPIPE ´ÜÀýµÈ ÆÄÀÌÇÁ¿¡ write ÇÒ°æ¿ì ¹ß»ý
SIGSEGV À߸øµÈ ¸Þ¸ð¸® ÂüÁ¶(ÁÖ·Î Æ÷ÀÎÅ͸¦ À߸ø ½èÀ»¶§)
SIGSTOP ÇÁ·Î¼¼½ºÀÇ ÀϽÃÁß´Ü (Ctrl+z)
SIGSUSR1 »ç¿ëÀÚ¸¦ À§ÇØ Á¤ÀÇµÈ ½Ã±×³Î
ƯÁ¤ÇÑ ÇÁ·Î¼¼½º¿¡ ½Ã±×³ÎÀ» º¸³»±â À§Çؼ­ ¿ì¸®´Â kill ¸í·ÉÀ» »ç¿ëÇÑ´Ù. ¿¹¸¦ µé¾î ƯÁ¤ ÇÁ·Î¼¼½º¸¦ Á×ÀÌ°í ½Í´Ù¸é,
[root@localhost root]$ kill -SIGKILL 1234
ȤÀº
[root@localhost root]$ kill -9 1234
¿Í °°ÀÌ ÇÏ¸é µÈ´Ù. ±×·¯¸é ÇØ´ç pid ¸¦ °¡Áö´Â ÇÁ·Î¼¼½º·Î ½Ã±×³ÎÀÌ Àü´ÞµÇ°Ô µÈ´Ù.

±×·¸´Ù¸é ½Ã±×³ÎÀ» Àü´Þ¹ÞÀº ÇÁ·Î¼¼½º´Â ¾î¶»°Ô µÇ´Â°¡

À§¿Í °°ÀÌ kill À» ÅëÇØ¼­ ½Ã±×³ÎÀ» Àü´Þ ¹ÞÀº ÇÁ·Î¼¼½º´Â ¾î¶»°Ô µÇ´Â°¡ ? À§¿¡¼­ ¼³¸íÇßµíÀÌ ½Ã±×³ÎÀ» Àü´Þ¹ÞÀº ÇÁ·Î¼¼½º´Â ½Ã±×³ÎÀ» ¹«½ÃÇϵçÁö, ¾Æ´Ï¸é ½Ã±×³Î¿¡ ´ëÇØ¼­ Àû´çÇÑ ÇÔ¼ö¸¦ È£ÃâÇØ¼­ 󸮸¦ ÇØÁÖµµ·Ï ÇÏ´Âµî ¾î¶² ÇൿÀ» ÃëÇϵµ·Ï ÇØÁÖ¾î¾ß ÇÑ´Ù. ¸¸¾à ÇØ´ç ½Ã±×³Î¿¡ ´ëÇØ¼­ ¾î¶°ÇÑ Çൿµµ ¸í½ÃÇÏÁö ¾Ê¾Ò´Ù¸é, ÇÁ·Î¼¼½º´Â ÇØ´ç ½Ã±×³Î¿¡ ´ëÇØ¼­ ½Ã±×³Î¿¡ µû¸¥ ±âº»ÇൿÀ» ÇÏ°Ô µÈ´Ù.

´ëºÎºÐÀÇ °æ¿ì ½Ã±×³Î¿¡ ´ëÇÑ ±âº»ÇൿÀº ÇÁ·Î¼¼½º Á¾·áÀ̸ç, SIGSEGV °°Àº °æ¿ì¿¡´Â core ´ýÇÁ¸¦ ³²±â°í ÇÁ·Î¼¼½º°¡ Á¾·áµÇ±âµµ ÇÑ´Ù. ½Ã±×³Î¿¡ µû¸¥ ±âº»ÇൿÀº ´Ù¸¥ ¹®¼­¸¦ Âü°íÇϵµ·Ï ÇÑ´Ù. ±âº»ÇൿÀº ±×¸® Áß¿äÇÏ´Ù°í »ý°¢µÇÁö ¾ÊÀ½À¸·Î ±×³É ³Ñ¾î°¡°Ú´Ù.

±×·¯³ª SIGKILL,SIGSTOP °ú °°Àº ½Ã±×³Î¿¡ ´ëÇØ¼­´Â ÇÁ·Î¼¼½º°¡ Àý´ë ¹«½ÃÇÒ¼ö ¾øµµ·Ï µÇ¾î ÀÖ´Ù. ÀÌÀ¯´Â ½´ÆÛÀ¯ÀúµîÀÌ Æ¯Á¤ ÇÁ·Î¼¼½º¸¦ ¹«Á¶°Ç Á׿©¾ß ÇÒ°æ¿ì°¡ »ý±â±â ¶§¹®ÀÌ´Ù.

¿¹Á¦¸¦ ÅëÇØ ¾Ë¾Æº¸´Â ÇÁ·Î¼¼½ºÀÇ ½Ã±×³Î ó¸®

C´Â Unix ¿¡¼­ÀÇ ½Ã±×³ÎÀ» ´Ù·ç±â À§Çؼ­ signal(2) ÇÔ¼ö¸¦ Á¦°øÇÑ´Ù. ´ÙÀ½Àº signal À» ó¸®ÇÏ´Â °¡Àå ±âº»ÀûÀÎ ¿¹ÀÌ´Ù.
¿¹Á¦: sigint.c
#include <signal.h> 
#include <unistd.h> 

void sig_handler(int signo); // ºñÇÁÀ½ ¹ß»ý ÇÔ¼ö

int main()
{
    int i = 0;
    signal(SIGINT, (void *)sig_handler);

    while(1)
    {
        printf("%d\n", i);
        i++;
        sleep(1);
    }
    return 1;
}


void sig_handler(int signo)
{
    printf("\a");
}

¿ì¸®´Â SIGINT ´Â CTRL+c ¸¦ ÀÔ·ÂÇÒ¶§ ¹ß»ýµÇ´Â ½Ã±×³ÎÀ̶ó´Â°É ¾Ë°í ÀÖ´Ù. ÇÁ·Î¼¼½º°¡ SIGINT ¸¦ ¹Þ¾ÒÀ»¶§ ÇÁ·Î¼¼½º¿¡¼­ Ưº°È÷ ½Ã±×³Î¿¡ ´ëÇÑ ÇൿÀ» ÁöÁ¤ÇÏÁö ¾Ê¾Ò´Ù¸é ÇØ´ç ÇÁ·Î¼¼½º´Â ±âº» ÇൿÀ» ÇÑ´Ù°í ¾Õ¿¡¼­ ¾ê±â¸¦ Çß¾ú´Ù. SIGINT ¿¡ ´ëÇÑ ±âº» ÇൿÀº "ÇÁ·Î¼¼½º Á¾·á" ÀÌ´Ù.

±×·¯³ª Ưº°ÇÑ °æ¿ì¿¡ CTRL+c ¸¦ »ç¿ëÀÚ°¡ ÀÔ·ÂÇÏ´õ¶óµµ, ÇÁ·Î¼¼½º¸¦ Á¾·á ½ÃŰ¸é ¾ÈµÇ´Â °æ¿ì°¡ ÀÖÀ»°ÍÀÌ´Ù. ¿¹¸¦ µé¾î vi ¿Í °°Àº ¿¡µðÅÍÀÇ °æ¿ì CTRL+c ¸¦ ÀÔ·ÂÇÑ´Ù°í ÇØ¼­ ÇÁ·Î¼¼½º°¡ Á¾·áµÇ¸é ¾ÈµÉ°ÍÀÌ´Ù. ´ë°ÔÀÇ °æ¿ì CTRL+c ¸¦ ¹«½ÃÇϵµ·Ï SIGINT ¿¡ ´ëÇØ¼­ ÇൿÀ» Á¤Çϴµ¥, vi °°Àº °æ¿ì CTRL+c ¸¦ ÀÔ·ÂÇϸé beep À½À» ¹ß»ýÇϵµ·Ï µÇ¾î ÀÖ´Ù(¹°·Ð À̰ÍÀº vi¹öÁ¯¿¡ µû¶ó ´Ù¸¦¼ö ÀÖ´Ù).

À§ÀÇ ¿¹Á¦¿¡¼­ ¿ì¸®´Â signal À» ÀÌ¿ëÇØ¼­ SIGINT ½Ã±×³ÎÀ» ¹ÞÀ»°æ¿ì sig_handler À̶ó´Â ÇÔ¼ö¸¦ È£ÃâÇϵµ·Ï SIGINT ½Ã±×³Î¿¡ ´ëÇÑ ÇÁ·Î¼¼½º ÇൿÀ» ÁöÁ¤Çß´Ù. ¿¹Á¦¸¦ ÄÄÆÄÀÏÈÄ ½ÇÇà½ÃŰ°í µµÁß¿¡ CTRL+c ¸¦ ´©¸£¸é beep À½ÀÌ ¹ß»ýÇÔÀ» ¾Ë¼ö ÀÖÀ»°ÍÀÌ´Ù. sgnal ÇÔ¼öÀÇ ¿øÇüÀº ´ÙÀ½°ú °°´Ù.
#include <signal.h>
void (*signal(int signum, void (*handler)(int)))(int);
signum Àº ½Ã±×³Î À̸§ ȤÀº ½Ã±×³Î ¹øÈ£À̸ç, handler ´Â signum ¿¡ ´ëÇÑ ÇൿÀ» ÃëÇÏ´Â ÇÔ¼öÀÌ´Ù. ÀÎÀڷδ ¹ß»ýµÈ ½Ã±×³ÎÀÇ ¹øÈ£°¡ µé¾î°£´Ù. À§ÀÇ ÄÚµå´Â SIGINT °¡ ¹ß»ýÇßÀ»¶§ beep À½À» ¹ß»ý½ÃŰ´Â °ÍÀε¥, ±×³É ÇØ´ç ½Ã±×³Î¿¡ ´ëÇØ¼­ ¹«½ÃÇÏ°í ½ÍÀ» ¶§°¡ ÀÖÀ»°ÍÀÌ´Ù. ±×·²¶§´Â SIG_IGN À» »ç¿ëÇÏ¸é µÈ´Ù.
// SIGINT ¸¦ ¹«½ÃÇÑ´Ù.  
signal(SIGINT, SIG_IGN);
ÇØ´ç ½Ã±×³Î¿¡ ´ëÇØ¼­ ±âº» ÇൿÀ» ÃëÇϵµ·Ï ÇÏ·Á¸é SIG_DFL À» »ç¿ëÇÏ¸é µÈ´Ù.

½Ã±×³ÎÀÌ ¹ß»ýÇϸé ÇÁ·Î¼¼½º´Â ¹ß»ýÁöÁ¡¿¡¼­ ÀϽÃÁß´ÜÇÑ´Ù.

½Ã±×³ÎÀÌ ¹ß»ýÇϸé ÇÁ·Î¼¼½º´Â ±× ÁöÁ¡¿¡¼­ ÀϽà ÁßÁö ÇÑ´ÙÀ½ ½Ã±×³Î¿¡ ´ëÇÑ ÇൿÀ» ÇÑ´Ù. À§ÀÇ ÇÁ·Î±×·¥Àº È­¸é¿¡ Áõ°¡µÇ´Â ¼ýÀÚ¸¦ °è¼ÓÇØ¼­ »Ñ·ÁÁÖ°Ô µÇ´Âµ¥, ¸¸¾à 11 ÀÌ Ãâ·ÂµÇ¾úÀ»¶§ ½Ã±×³ÎÀ» ¹ß»ý½ÃŲ´Ù¸é (CTRL+c ¸¦ Ŭ¸¯ÇÑ´Ù¸é) ÇÁ·Î¼¼½º´Â ÇØ´ç ÁöÁ¡¿¡¼­ ÁßÁö µÇ°í, handler ·Î ÁöÁ¤µÈ ÇÔ¼ö¸¦ È£ÃâÇÏ°Ô µÈ´Ù. ±×¸®°í ÀÛ¾÷ÀÌ ³¡³­ÈÄ ´Ù½Ã ÁßÁöµÈ ÁöÁ¡À¸·Î µÇµ¹¾Æ ¿À°í ÇÁ·Î¼¼½º´Â °è¼Ó ÁøÇàµÈ´Ù. ±×·¯¹Ç·Î beep À½ÀÌ ¹ß»ýÇÑÈÄ 12 °¡ Ãâ·ÂµÇ°Ô µÉ°ÍÀÌ´Ù.

SIGHUP ¸¦ ±¸ÇöÇØº¸ÀÚ

¸¶Áö¸·À¸·Î SIGHUP ¸¦ ±¸ÇöÇÔÀ¸·Î½á, À̹ø ±â»ç¸¦ ³¡³»µµ·Ï ÇϰڴÙ.
º¸Åë SIGHUP ¸¦ ÇØ´ç pid ¿¡ ÁÖ¸é ÇØ´ç pid ·Î ÇÁ·Î¼¼½º°¡ ´Ù½Ã ½ÃÀ۵Ǵ °ÍÀ» º¼¼ö ÀÖÀ»°ÍÀÌ´Ù. º¸Åë µ¥¸óÇÁ·Î¼¼½ºÀÇ ¼³Á¤À» ¸¶Ä£´ÙÀ½¿¡ ¼³Á¤³»¿ëÀ» Àç Àû¿ë ½ÃÄÑÁÖ±â À§Çؼ­ ÀÚÁÖ »ç¿ëÇÑ´Ù.

ÀÌ·¯ÇÑ ÇÁ·Î±×·¥ÀÇ ¾ÆÀ̵ð¾î´Â °£´ÜÇÏ´Ù. SIGHUP ½Ã±×³ÎÀ» ¹ÞÀ¸¸é, ÇÁ·Î¼¼½º¸¦ ÇØ´ç ÁöÁ¡¿¡¼­ Á¾·áÇϰí execl°è¿­ ½Ã½ºÅÛÄÝ ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼­ ÇÁ·Î¼¼½º¸¦ ´Ù½Ã ½ÇÇà½ÃŰ´Â °ÍÀÌ´Ù. ¹°·Ð Á» º¹ÀâÇÑ ÇÁ·Î±×·¥À̶ó¸é SIGHUP°¡ ¹ß»ýÇßÀ»¶§ ÁøÇàÁßÀÌ´ø ÀÛ¾÷À» Á¾·á½Ã۴ 󸮸¦ ÇÏ´Â ·çƾÀÌ Ãß°¡µÇ¾î¾ß ÇÒ°ÍÀÌ´Ù.

execl °è¿­ ÇÁ·Î¼¼½º¿¡ ´ëÇÑ Á¤º¸´Â ÇÁ·Î¼¼½º °ü°è¸¦ Âü°íÇϱ⠹ٶõ´Ù.
¿¹Á¦: sig_hup.c
#include <signal.h> 
#include <unistd.h> 

void sig_handler(int signo); // ºñÇÁÀ½ ¹ß»ý ÇÔ¼ö

int main()
{
    int i = 0;
    printf("Program start\n");
    if (signal(SIGHUP, (void *)sig_handler) == SIG_ERR)
    {
        perror("signal set error : ");
        exit(0);
    }

    while(1)
    {
        printf("%d\n", i);
        i++;
        sleep(1);
    }
    return 1;
}


void sig_handler(int signo)
{
    execl("./sig_hup", 0);
}

À§ÀÇ ÇÁ·Î±×·¥À» ÄÄÆÄÀÏ ½ÃŲÈÄ ½ÇÇàÀ» ½Ã۰í kill ¸í·É¾î¸¦ ÀÌ¿ëÇØ¼­ SIGHUP ¸¦ ¹ß»ý½ÃÄѺ¸ÀÚ
[root@localhost root]# ps -aux | grep sig_hup
root      4209  0.0  0.1  1348  348 pts/9    S    02:17   0:00 ./sig_hup
[root@localhost root]# kill -HUP 4209      
[root@localhost root]# kill -HUP 4209      
óÀ½ kill À» ½Ã۸é ./sig_hup °¡ ´Ù½Ã ½ÇÇàµÊÀ» º¼¼ö ÀÖÀ»°ÍÀÌ´Ù. ±×·±µ¥.. ´Ù½Ã Çѹø kill À» ¹ß»ý½Ã۸é sig_hup °¡ ´Ù½Ã ½ÇÇàµÇÁö ¾ÊÀ½À»(½ÅÈ£°¡ Àü´ÞµÇÁö ¾ÊÀ½) ¾Ë¼ö ÀÖ´Ù.

À§ÀÇ ÄÚµå´Â ±×·²µí Çϱä ÇÏÁö¸¸ ¹®Á¦Á¡À» °¡Áö°í Àֱ⠶§¹®ÀÌ´Ù. execl °è¿­ÀÇ ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼­ »õ·Î¿î ÇÁ·Î¼¼½º¸¦ ½ÇÇà½Ãų°æ¿ì ±âÁ¸ ÇÁ·Î¼¼½ºÀÇ ÀÚ¿øÁß ¸î°¡Áö°¡ »õ·Î¿î ÇÁ·Î¼¼½º·Î Àü´ÞµÇ±â ¶§¹®ÀÌ´Ù. signal ÀÇ °æ¿ì´Â »õ·Î¿î ÇÁ·Î¼¼½º·Î ÇöÀç »óŰ¡ Àü´ÞµÇ¹Ç·Î ½Ã±×³ÎÀÌ ºí·°»óÅ·Π³Ñ¾î°¡°Ô µÈ´Ù. ÀÌ ¹®Á¦¸¦ ÇØ°áÇϱâ À§Çؼ­´Â signal ÀÇ Æ¯¼ºÀ» Á¦¾îÇÏ´Â ¸î°¡Áö ÇÔ¼öµéÀ» »ç¿ëÇØ¾ß ÇÑ´Ù. ÀÌ¿¡ ´ëÇÑ ³»¿ëÀº ´ÙÀ½ ±â»ç¿¡¼­ ÀÚ¼¼È÷ ´Ù·çµµ·Ï ÇϰڴÙ.
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.