DAEMON(3)

NOME
daemon - esegue sullo sfondo

SINTASSI
#include <unistd.h>

int daemon(int nochdir, int noclose);

Macro per test di funzionalità richieste per glibc (si veda feature_test_macros(7)):

daemon():
    A partire da glibc 2.21:
        _DEFAULT_SOURCE
    In glibc 2.19 e 2.20:
        _DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
    Sino alla glibc 2.19 compresa:
        _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)

DESCRIZIONE
La funzione daemon() è utilizzata dai programmi che vogliono staccarsi dal terminale di controllo e stare in esecuzione sullo sfondo come demoni di sistema.

Se nochdir è zero, daemon() cambia la directory di lavoro corrente del processo alla directory radice ("/"); altrimenti, la directory di lavoro corrente rimane invariata.

Se noclose è zero, daemon() redireziona lo standard input, lo standard output e lo standard error a /dev/null; altrimenti, non vengono apportata variazioni a questi descrittori di file.

VALORE RESTITUITO
(Questa funzione esegue un fork, e se il fork(2) ha successo, il genitore chiama _exit(2), in modo che errori successivi vengano visti solo dal figlio.) In caso di successo BR daemon () restituisce zero. Se si verifica un errore, daemon() restituisce -1 e imposta errno ad uno qualunque degli errori specificati per fork(2) e setsid(2).

ATTRIBUTI
Per una spiegazione dei termini usati in questa sezione si veda attributes(7).
Interface | Attribute | Value
 | Thread safety | MT-Safe

CONFORME A
Non presente in POSIX.1. Una funzione simile è presente sui sistemi BSD. La funzione daemon() apparve per la prima volta in 4.4BSD.

NOTE
L'implementazione di glibc può anche restituire -1 quando /dev/null esiste ma non è un dispositivo a caratteri con i numeri maggiore e minore che ci si aspetterebbe. In questo caso errno non ha bisogno di essere impostato.

BUG
L'implementazione GNU C Library di questa funzione è stata presa da BSD, e non impiega la tecnica del doppio fork (cioè, fork(2), setsid(2), fork(2)) che è necessaria per essere sicuri che il processo demone risultante non sia un leader di sessione. Invece, il demone risultante è un leader di sessione. Sui sistemi che seguono la semantica di System V (p.es. Linux), questo vuol dire che se il demone apre un terminale che non è già un terminale di controllo per un'altra sessione, il terminale diventa involontariamente il terminale di controllo per il demone.

VEDERE ANCHE
fork(2), setsid(2)

COLOPHON
Questa pagina fa parte del rilascio 4.08 del progetto Linux man-pages. Una descrizione del progetto, le istruzioni per la segnalazione degli errori, e l'ultima versione di questa pagina si trovano su https://www.kernel.org/doc/man-pages/. La versione italiana fa parte del pacchetto man-pages-it v. 4.08, a cura di: ILDP "Italian Linux Documentation Project" http://www.pluto.it/ildp
Per la traduzione in italiano si può fare riferimento a http://www.pluto.it/ildp/collaborare/
Segnalare eventuali errori di traduzione a ildp@pluto.it