Почему MUST detach from tty when writing linux daemon?

Когда я пытался написать демона под linux, используя C, мне сказали, что я должен добавить следующий код после fork блока кода:

/* Preparations */
...

/* Fork a new process */
pid_t cpid = fork();
if (cpid == -1){perror("fork");exit(1);}
if (cpid > 0){exit(0);}

/* WHY detach from tty ? */
int fd = open("/dev/tty", O_RDWR);
ioctl(fd, TIOCNOTTY, NULL);

/* Why set PGID as current PID ? */
setpgid(getpid(), 0);

Мой вопрос в следующем:

24
задан Adam Zalcman 8 January 2012 в 13:02
поделиться