DAEMON(3)

НАЗВАНИЕ
daemon - запускает процессы в фоновом режиме

СИНТАКСИС
#include <unistd.h>

I int daemon(int nochdir , int noclose );

ОПИСАНИЕ
Функция daemon() необходима для того, чтобы отключить программу от управляющего терминала и запустить ее как системный демон.

Если аргумент nochdir не нулевой, то daemon() изменяет текущий рабочий каталог на корневой (/).

Если аргумент noclose не нулевой, то daemon() перенаправляет стандартный поток ввода/вывода ошибок в /dev/null.

ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
Эта функция порождает новый процесс и, если fork() завершается успешно, то родительский процесс вызывает _exit(0), чтобы дальнейшие ошибки воспринимались только дочерним процессом.) В случае успешного выполнения возвращается ноль. Если возникла ошибка, то daemon() возвращает -1 и присваивает глобальной переменной errno значение, указанное в библиотечных функциях fork(2) и setsid(2).

СМ. ТАКЖЕ
fork(2), setsid(2)

ЗАМЕЧАНИЯ
Реализация в glibc может также возвращать -1 в случаях, когда /dev/null существует, но не является файлом символьного устройства с ожидаемыми основным и вспомогательным номерами. В этом случае нет необходимости устанавливать errno.

ПРИМЕЧАНИЯ ПО ИСТОРИИ
Функция daemon() впервые появилась в BSD4.4.