daemon(3)

NOME
daemon - esegue sullo sfondo

LIBRARY
Standard C library (libc, -lc)

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

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

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 (https://www.gnu.org/licenses/gpl-3.0.html) 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.