table of contents
DAEMON(3) | Podręcznik programisty Linuksa | DAEMON(3) |
NAZWA¶
daemon - uruchamianie w tleSKŁADNIA¶
#include <unistd.h>int daemon(int nochdir, int noclose);
Wymagane ustawienia makr biblioteki glibc (patrz
feature_test_macros(7)):
daemon():
Od glibc 2.21: _DEFAULT_SOURCE W glibc 2.19 i 2.20: _DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500) Do glibc 2.19 włącznie: _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¶
Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).Interfejs | Atrybut | Wartość |
daemon() | Bezpieczeństwo wątkowe | MT-Safe |
ZGODNE Z¶
Funkcja nie występuje w POSIX.1. 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.BŁĘDY¶
Implementacja biblioteki C GNU dla tej funkcji została zapożyczona z BSD i nie korzysta z techniki podwójnego rozwidlania (tzn. fork(2), setsid(2), fork(2)) koniecznej dla zapewnienia, że wynikowy proces demona nie jest liderem sesji. Zamiast tego, wynikowy demon jest liderem sesji. W systemach korzystających z semantyki Systemu V (np. Linux), oznacza to, że gdy demon otwiera terminal który nie jest jeszcze kontrolującym terminalem dla innej sesji, to ten terminal po cichu zostanie kontrolującym terminalem dla demona.ZOBACZ TAKŻE¶
fork(2), setsid(2)O STRONIE¶
Angielska wersja tej strony pochodzi z wydania 4.07 projektu Linux man-pages. Opis projektu, informacje dotyczące zgłaszania błędów oraz najnowszą wersję oryginału można znaleźć pod adresem https://www.kernel.org/doc/man-pages/.TŁUMACZENIE¶
Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Andrzej Krzysztofowicz (PTM) <ankry@mif.pg.gda.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>.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ą 4.07 oryginału.
2016-03-15 | GNU |