linux man page : setsid - ¼¼¼ÇÀ» ¸¸µé°í ÇÁ·Î¼¼½º ±×·ì ¾ÆÀ̵𸦠¼³Á¤ÇÑ´Ù.
ÃÑ ÆäÀÌÁö ¼ö : 3224

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



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

<a href="/modules/moniwiki/wiki.php/manSearch?google=none&name=setsid">setsid</a>(2)

1장. setsid(2)

¼¼¼ÇÀ» ¸¸µé°í ÇÁ·Î¼¼½º ±×·ì¾ÆÀ̵ð(GID)¸¦ ¼³Á¤ÇÑ´Ù.


1.1. »ç¿ë¹ý

#include <unistd.h>

pid_t setsid(void);
		


1.2. ¼³¸í

¸¸¾à setsid()¸¦ È£ÃâÇÏ´Â ÇÁ·Î¼¼½º°¡ ÇÁ·Î¼¼½º ±×·ìÀÇ ¸®´õ°¡ ¾Æ´Ï¶ó¸é »õ·Î¿î ¼¼¼ÇÀ» »ý¼ºÇϰí ÇØ´ç ¼¼¼Ç¿¡ ´ëÇÑ ±×·ìÀÇ ¸®´õ°¡ µÇ¸ç, tty¸¦ Á¦¾îÇÒ ¼ö ¾ø°Ô µÈ´Ù. ÀÌ·¸°Ô setsid()¸¦ È£ÃâÇØ¼­ ¼¼¼ÇÀ» »ý¼ºÇÏ°í ±×·ìÀÇ ¸®´õ°¡ µÇ¾ú´Ù¸é ¼¼¼Ç¾ÆÀ̵ð¿Í ±×·ì¾ÆÀ̵ð´Â ÇÁ·Î¼¼½º¾ÆÀ̵ð(PID)¿Í µ¿ÀÏÇÏ°Ô µÈ´Ù. ÀÌÈÄ ÀÌ ÇÁ·Î¼¼½º¿¡¼­ »ý¼ºµÇ´Â ¸ðµç (ÀÚ½Ä)ÇÁ·Î¼¼½ºµéÀº ÀÌ ¼¼¼Ç ¾ÆÀ̵ð¿Í ±×·ì¾ÆÀ̵𸦠°¡Áö°Ô µÈ´Ù.

참고: ÇÁ·Î¼¼½º ±×·ìÀÇ ¸®´õ´Â ÀÚ½ÅÀÇ PID¿Í ±×·ì¾ÆÀ̵𰡠µ¿ÀÏÇÏ´Ù. setsid()´Â ƯÈ÷ µ¥¸óÀ¸·Î ÀÛµ¿ÇÏ´Â ÇÁ·Î±×·¥À» ¸¸µé±â À§Çؼ­ ÁÖ¿äÇÏ°Ô »ç¿ëµÈ´Ù. ÀÌ·² °æ¿ì fork()ÈÄ ºÎ¸ðÇÁ·Î¼¼½º¸¦ Á¾·áÇϰí setsid()¸¦ È£ÃâÇÏ°Ô µÈ´Ù.


1.3. ¹Ýȯ°ª

È£ÃâÇÑ ÇÁ·Î¼¼½ºÀÇ ¼¼¼Ç ¾ÆÀ̵𸦠¸®ÅÏÇÑ´Ù.


1.4. ¿¡·¯

¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì -1À» ¸®ÅÏÇÑ´Ù. ¿¡·¯´Â EPERMÀÏ °æ¿ì¿¡¸¸ ¹ß»ýÇÑ´Ù. ÀÌ ¿¡·¯´Â ÇÁ·Î¼¼½º°¡ ¾î¶² ÀÌÀ¯·Î ´Ù¸¥ ÇÁ·Î¼¼½º°¡ »ç¿ëÇÏ´Â PID¸¦ ¼¼¼Ç¾ÆÀ̵ð·Î »ç¿ëÇÏ·Á°í ÇÒ¶§ ¹ß»ýÇÑ´Ù.


1.5. ¿¹Á¦

#include <sys/types.h> 
#include <sys/stat.h> 
#include <stdio.h> 
#include <fcntl.h> 

int main()
{
    pid_t   pid;

    if (( pid = fork()) < 0)
   	    exit(0);

    // ºÎ¸ðÇÁ·Î¼¼½º¸¦ Á¾·áÇÑ´Ù. 
    else if(pid != 0)
        exit(0);

    // µ¥¸ó ÇÁ·Î±×·¥Àº »óÈ£´ëÈ­ÇÒ ÀÏÀÌ ¾øÀ¸¹Ç·Î 
    // Ç¥ÁØÀÔ/Ãâ/¿¡·¯¸¦ ´Ý´Â´Ù. 
    close(0);  
    close(1);
    close(2);
    // ¼¼¼ÇÀ» »ý¼ºÇÑ´Ù. 
    setsid();    
    // µ¥¸ó ÇÁ·Î±×·¥ÀÌ ½ÇÇàÇÒ Äڵ带 ÀÛ¼ºÇÑ´Ù.
    while(1)
    {
    } 	
}
		
À§ÀÇ ÇÁ·Î±×·¥Àº setsid()¸¦ ÀÌ¿ëÇØ¼­ µ¥¸óÇÁ·Î±×·¥À» ¸¸µå´Â ÀüÇüÀûÀÎ ¿¹Á¦´Ù.

EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.