signalÀ» ÀÌ¿ëÇÑ ÇÁ·Î¼¼½º ¸ð´ÏÅ͸µ
ÃÑ ÆäÀÌÁö ¼ö : 3224

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



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

kill ½Ã½ºÅÛ ¸í·ÉÀ» ÀÌ¿ëÇÑ ÇÁ·Î¼¼½º ¸ð´ÏÅ͸µ

kill(1)¸í·ÉÀ» ÀÌ¿ëÇϸé, ÇÁ·Î¼¼½º¿¡ ½Ã±×³ÎÀ» º¸³¾ ¼ö ÀÖ´Ù´Â °ÍÀ» ¾Ë°í ÀÖÀ» °ÍÀÌ´Ù. killÀº ÀÎÀÚ·Î ½Ã±×³Î ¹øÈ£¿Í ½Ã±×³ÎÀ» ¹ÞÀ» ÇÁ·Î¼¼½ºÀÇ PID¸¦ ¹Þ´Âµ¥, À̶§ ½Ã±×³Î ¹øÈ£¸¦ 0 À¸·Î ÇÒ°æ¿ì ÇÁ·Î¼¼½º°¡ Á¸ÀçÇÏ´Â Áö¸¦ °Ë»çÇÒ ¼ö ÀÖ´Ù.

½Ã±×³Î¹øÈ£ 0Àº ½ÇÁ¦ ½Ã±×³ÎÀ» º¸³»Áø ¾Ê°í, ½Ã±×³ÎÀ» ¹ÞÀ» ÇÁ·Î¼¼½º°¡ Á¸ÀçÇÏ´ÂÁö¸¸À» °Ë»çÇÑ´Ù. ¸¸¾à ÇÁ·Î¼¼½º°¡ Á¸ÀçÇÑ´Ù¸é 0À» ¸®ÅÏÇϰí, ±×·¸Áö ¾Ê´Ù¸é 1À» ¸®ÅÏÇÑ´Ù.

$ echo $$ 
4336 
$ kill -0 $$ 
$ echo $? 
0 
 
$$´Â ½©¿¡¼­ÀÇ Æ¯¼öº¯¼ö·Î ½© ÀÚ½ÅÀÇ PID°ªÀ» °¡Áö°í ÀÖ´Ù. ±×·¯¹Ç·Î -0 ¿É¼ÇÀ» ÀÌ¿ëÇØ¼­ °Ë»ç¸¦ ÇÏ°Ô µÉ°æ¿ì ½© ÇÁ·Î¼¼½º°¡ Á¸ÀçÇϰí ÀÖÀ¸¹Ç·Î 0À» ¸®ÅÏÇÏ°Ô µÉ °ÍÀÌ´Ù. $?´Â °¡Àå ÃÖ±Ù Á¾·áµÈ ÇÁ·Î¼¼½ºÀÇ ¸®ÅϰªÀ» °¡Áö°í Àִ Ư¼öº¯¼ö´Ù.

ÀÌÁ¦ Á¸ÀçÇÏÁö ¾Ê´Â ÇÁ·Î¼¼½º¸¦ °Ë»çÇØº¸ÀÚ.
$ kill -0 12345 
bash: kill: (1234) - No such process 
$ echo $? 
1 
 

¿¹Á¦ ½© ÇÁ·Î±×·¥

#!/bin/sh 
 
# ÀÎÀÚ·Î °Ë»çÇÒ ÇÁ·Î¼¼½ºÀÇ PID¸¦ ³Ñ°Ü ¹Þ´Â´Ù. 
CheckPID=$1; 
 
while [ 1 ] 
do 
 
kill -0 $CheckPID 2> /dev/null 
if [ $? -eq 0 ] 
then 
  echo "Process Alive" 
else 
  echo "Process Dead" 
fi 
sleep 1; 
 
done 
 

¿¹Á¦ C ÇÁ·Î±×·¥

¸®´ª½º´Â kill(2) ½Ã½ºÅÛ ÇÔ¼ö¸¦ Á¦°øÇÑ´Ù. ÀÌ ÇÔ¼ö´Â µÎ¹øÂ° ÀÎÀÚ·Î ½Ã±×³Î¹øÈ£¸¦ ³Ñ°Ü ¹Þ´Âµ¥, 0À» ¼³Á¤ÇÏ¸é ½Ã±×³ÎÀ» º¸³»Áö ¾Ê°í ÇÁ·Î¼¼½º°¡ Á¸ÀçÇÏ´ÂÁö¸¸À» °Ë»çÇÑ´Ù. ÇÁ·Î¼¼°¡ Á¸ÀçÇϸé 0 ±×·¸Áö ¾ÊÀ¸¸é 0ÀÌ ¾Æ´Ñ Á¤¼ö¸¦ ¸®ÅÏÇÑ´Ù.

´ÙÀ½Àº À§ÀÇ ½©ÇÁ·Î±×·¥ÀÇ C ¹öÀüÀÌ´Ù.
#include <signal.h> 
#include <unistd.h> 
#include <stdio.h> 
 
int main(int argc, char **argv) 
{ 
  int status; 
  int CheckPID = atoi(argv[1]); 
 
  while(1) 
  { 
    status = kill(CheckPID, 0); 
    if (status) 
    { 
      printf("Process is Dead\n"); 
    } 
    else 
    { 
      printf("Process is Alive\n"); 
    } 
    sleep(1); 
  } 
} 
 
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.