daemon(3) Library Functions Manual daemon(3) NAZWA daemon - uruchamianie w tle BIBLIOTEKA Standardowa biblioteka C (libc, -lc) SKLADNIA #include 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 wlacznie: _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500) OPIS Funkcja daemon() jest przeznaczona dla programow, ktore chca odlaczyc sie od sterujacego nimi terminala i dzialac w tle jako demony systemowe. Jesli argument nochdir bedzie zerem, to daemon() zmieni biezacy katalog roboczy na katalog glowny ("/"). W przeciwnym wypadku biezacy katalog roboczy nie jest zmieniany. Jesli argument noclose bedzie zerem, to daemon() przekieruje standardowe wejscie, standardowe wyjscie i standardowa diagnostyke do /dev/null. W przeciwnym wypadku podane deskryptory plikow nie sa zmieniane. WARTOSC ZWRACANA (Ta funkcja rozwidla sie i jesli fork(2) sie powiedzie, rodzic wykonuje _exit(2), tak, ze dalsze bledy sa widziane tylko przez potomka). W przypadku pomyslnego zakonczenia, zwracane jest zero Jesli wystapi blad, daemon() zwroci -1 i ustawi errno na jeden z bledow okreslonych dla fork(2) i setsid(2). ATRYBUTY Informacje o pojeciach uzywanych w tym rozdziale mozna znalezc w podreczniku attributes(7). +---------------------------+--------------------------+---------------+ |Interfejs | Atrybut | Wartosc | +---------------------------+--------------------------+---------------+ |daemon() | Bezpieczenstwo watkowe | MT-bezpieczne | +---------------------------+--------------------------+---------------+ WERSJE A similar function appears on the BSDs. Implementacja w glibc moze rowniez zwrocic -1 gdy /dev/null istnieje, ale nie jest urzadzeniem znakowym o oczekiwanych numerach glownym i pobocznym. W tym przypadku nie ma potrzeby ustawiania errno. STANDARDY None. HISTORIA 4.4BSD. USTERKI Implementacja biblioteki C GNU dla tej funkcji zostala zapozyczona z BSD i nie korzysta z techniki podwojnego rozwidlania (tzn. fork(2), setsid(2), fork(2)) koniecznej dla zapewnienia, ze wynikowy proces demona nie jest liderem sesji. Zamiast tego, wynikowy demon jest liderem sesji. W systemach korzystajacych z semantyki Systemu V (np. Linux), oznacza to, ze gdy demon otwiera terminal ktory nie jest jeszcze kontrolujacym terminalem dla innej sesji, to ten terminal po cichu zostanie kontrolujacym terminalem dla demona. ZOBACZ TAKZE fork(2), setsid(2), daemon(7), logrotate(8) TLUMACZENIE Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: Andrzej Krzysztofowicz , Robert Luberda i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Linux man-pages 6.06 31 pazdziernika 2023 r. daemon(3)