table of contents
- bullseye 1:4.10.0-1
- bullseye-backports 1:4.18.1-1~bpo11+1
- testing 1:4.18.1-1
- unstable 1:4.18.1-1
DAEMON(3) | Podręcznik programisty Linuksa | DAEMON(3) |
NAZWA¶
daemon - uruchamianie w tle
SKŁADNIA¶
#include <unistd.h>
int daemon(int nochdir, int noclose);
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¶
O STRONIE¶
Angielska wersja tej strony pochodzi z wydania 5.10 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 są: Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.
26 listopada 2017 r. | GNU |