Scroll to navigation

DAEMON(3) Manuale del programmatore di Linux DAEMON(3)

NOME

daemon - esegue sullo sfondo

SINTASSI

#include <unistd.h>

int daemon(int nochdir, int noclose);

Macro per test di funzionalità per glibc (vedere feature_test_macros(7)):

daemon():

    A partire de glibc 2.21:
        _DEFAULT_SOURCE
    In glibc 2.19 e 2.20:
        _DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
    Fino a glibc 2.19 incluso:
        _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 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 la spiegazione dei termini usati in questa sezione, vedere attributes(7).
Interfaccia Attributo Valore
daemon() 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), daemon(7), logrotate(8)

COLOPHON

Questa pagina fa parte del rilascio 5.10 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/.

TRADUZIONE

La traduzione italiana di questa pagina di manuale è stata creata da Giordano Neri <neri@cli.di.unipi.it> e Marco Curreli <marcocurreli@tiscali.it>

Questa traduzione è documentazione libera; leggere la GNU General Public License Versione 3 o successiva per le condizioni di copyright. Non ci assumiamo alcuna responsabilità.

Per segnalare errori nella traduzione di questa pagina di manuale inviare un messaggio a pluto-ildp@lists.pluto.it.

26 novembre 2017 GNU