demon(3)

NUME
daemon - rulează în fundal

BIBLIOTECA
Biblioteca C standard (libc, -lc)

REZUMAT
#include <unistd.h>

int daemon(int nochdir, int noclose);

    Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

daemon():
    Începând cu glibc 2.21:
        _DEFAULT_SOURCE
    În glibc 2.19 și 2.20:
        _DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
    Până la și inclusiv glibc 2.19:
        _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)

DESCRIERE
Funcția daemon() este destinată programelor care doresc să se detașeze de terminalul de control și să ruleze în fundal ca demoni de sistem.

Dacă nochdir este zero, daemon() schimbă directorul de lucru curent al procesului în directorul rădăcină („/”); în caz contrar, directorul de lucru curent este lăsat neschimbat.

Dacă noclose este zero, daemon() redirecționează intrarea standard, ieșirea standard și eroarea standard către /dev/null; în caz contrar, nu se face nici o modificare la acești descriptori de fișiere.

VALOAREA RETURNATĂ
(Această funcție se bifurcă, iar dacă fork(2) reușește, părintele apelează _exit(2), astfel încât erorile ulterioare sunt văzute doar de copil). În caz de succes, daemon() returnează zero. Dacă apare o eroare, daemon() returnează -1 și configurează errno la oricare dintre erorile specificate pentru fork(2) și setsid(2).

ATRIBUTE
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
Interfață | Atribut | Valoare
daemon() | Siguranța firelor | MT-Safe

STANDARDE
Nu există în POSIX.1. O funcție similară apare în BSD. Funcția daemon() a apărut pentru prima dată în 4.4BSD.

NOTE
Implementarea glibc poate, de asemenea, să returneze -1 atunci când /dev/null există, dar nu este un dispozitiv de caractere cu numerele majore și minore așteptate. În acest caz, errno nu trebuie să fie configurată.

ERORI
Implementarea bibliotecii GNU C a acestei funcții a fost preluată de la BSD și nu utilizează tehnica double-fork (adică fork(2), setsid(2), fork(2)), care este necesară pentru a se asigura că procesul demon rezultat nu este un lider de sesiune. În schimb, demonul rezultat este un lider de sesiune. Pe sistemele care urmează semantica Sistemului V (de exemplu, Linux), aceasta înseamnă că, dacă demonul deschide un terminal care nu este deja un terminal de control pentru o altă sesiune, atunci acel terminal va deveni, din greșeală, terminal de control pentru demon.

CONSULTAȚI ȘI
fork(2), setsid(2), daemon(7), logrotate(8)

TRADUCERE
Traducerea în limba română a acestui manual a fost creată de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă Nicio RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.