ОБЗОР
#include <unistd.h>
int daemon(int nochdir, int noclose);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
daemon(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
ОПИСАНИЕ
Функция daemon() необходима для того, чтобы отключить программу от
управляющего терминала и запустить её в фоновом режиме подобно тому, как
выполняются системные службы.
Если аргумент nochdir равен нулю, то daemon() изменяет текущий рабочий каталог процесса на корневой («/»); в противном случае текущий рабочий каталог не изменяется.
Если аргумент noclose равен нулю, то daemon() перенаправляет стандартный поток ввода, вывода и ошибок в /dev/null; в противном случае данные файловые дескрипторы не изменяется.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Эта функция порождает новый процесс и, если fork(2) завершается без
ошибок, родительский процесс вызывает _exit(2), чтобы дальнейшие ошибки
воспринимались только дочерним процессом. В случае успешного выполнения
daemon() возвращается ноль. Если возникла ошибка, то daemon()
возвращает -1 и присваивает глобальной переменной errno одно из значений,
указанных для fork(2) и setsid(2).
АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7).
Интерфейс Атрибут Значение
daemon()
безвредность в потоках: безвредно (MT-Safe)