daemon(3) Library Functions Manual daemon(3)

daemon - esegue sullo sfondo

Standard C library (libc, -lc)

#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)

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.

(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).

Per la spiegazione dei termini usati in questa sezione, vedere attributes(7).

Interfaccia Attributo Valore
daemon() Thread safety MT-Safe

A similar function appears on the BSDs.

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.

None.

4.4BSD.

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.

fork(2), setsid(2), daemon(7), logrotate(8)

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.

20 luglio 2023 Linux man-pages 6.05.01