daemon(3) uruchamianie w tle

SKŁADNIA

#include <unistd.h>

int daemon(int nochdir, int noclose);

Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)):

daemon(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)

OPIS

Funkcja daemon() jest przeznaczona dla programów, które chcą odłączyć się od sterującego nimi terminala i działać w tle jako demony systemowe.

Jeśli argument nochdir będzie zerem, to daemon() zmieni bieżący katalog roboczy na katalog główny ("/"). W przeciwnym wypadku bieżący katalog roboczy nie jest zmieniany.

Jeśli argument noclose będzie zerem, to daemon() przekieruje standardowe wejście, standardowe wyjście i standardową diagnostykę do /dev/null. W przeciwnym wypadku podane deskryptory plików nie są zmieniane.

WARTOŚĆ ZWRACANA

(Ta funkcja rozwidla się i jeśli fork(2) się powiedzie, rodzic wykonuje _exit(2), tak, że dalsze błędy są widziane tylko przez potomka). W przypadku pomyślnego zakończenia, zwracane jest zero Jeśli wystąpi błąd, daemon() zwróci -1 i ustawi errno na jeden z błędów określonych dla fork(2) i setsid(2).

ATRYBUTY

Wielowątkowość (patrz pthreads(7))

Funkcja daemon() jest wątkowo bezpieczna.

ZGODNE Z

Funkcja nie występuje w POSIX.1-2001. Podobna funkcja pojawia się w systemach BSD. Funkcja daemon() po raz pierwszy pojawiła się w 4.4BSD.

UWAGI

Implementacja w glibc może również zwrócić -1 gdy /dev/null istnieje, ale nie jest urządzeniem znakowym o oczekiwanych numerach głównym i pobocznym. W tym przypadku nie ma potrzeby ustawiania errno.

O STRONIE

Angielska wersja tej strony pochodzi z wydania 3.71 projektu Linux man-pages. Opis projektu, informacje dotyczące zgłaszania błędów, oraz najnowszą wersję oryginału można znaleźć pod adresem http://www.kernel.org/doc/man-pages/.

TŁUMACZENIE

Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Andrzej Krzysztofowicz (PTM) <[email protected]>, Robert Luberda <[email protected]> i Michał Kułach <[email protected]>.

Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów na stronie http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją 3.71 oryginału.