Я разрабатываю программу на языке C и в Ubuntu 16.04. Эта программа создает поток, слушающий удаленный запрос, а основная программа вызывает определенные функции, чтобы превратить весь процесс в демон, чтобы он мог работать в фоновом режиме.
Я обнаружил, что основная программа работала правильно, но поток не работал.
Что я пробовал:
Я прочитал исходный код превращения процесса в демон. Ниже приведена одна важная часть:
Код: Выделить всё
switch(fork()) {
case -1:
perror("fuse_daemonize: fork");
return -1;
case 0:
break;
default:
(void) read(waiter[0], &completed, sizeof(completed));
_exit(0);
}
Мой вопрос:
Как я могу решить эту проблему? Учитывая, что мне нужно создать поток до того, как процесс будет превращен в демон, а не после того, как процесс будет превращен в демон.
Подробнее здесь: https://stackoverflow.com/questions/790 ... nto-daemon
Мобильная версия