Demone (informatica): differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: inutili |
|||
Riga 10:
==Aspetti tecnici==
In senso strettamente tecnico, i sistemi [[Unix]] considerano come demone qualsiasi [[Processo (informatica)|processo]] che abbia [[init]] come [[processo padre]] e che non abbia più alcun ''terminale controllante'' (cioè un [[Terminale (informatica)|terminale]] che gli possa inviare direttamente dei [[Segnale (informatica)|segnali]]). Poiché init adotta i [[processo orfano|processi orfani]], il metodo comunemente usato dai programmi per rendersi demoni è quello di invocare la [[chiamata di sistema]] [[fork (programmazione)|fork]] per creare un [[processo figlio]] che sia un loro duplicato e poi terminare, mentre il figlio, rimasto orfano (e quindi adottato da init), continua normalmente l'esecuzione chiudendo i [[canali standard]], invocando la chiamata di sistema [[setsid]] per disconnettersi da ogni terminale controllante e cambiando la [[directory corrente]] a <code>/</code> in modo da non tenere inutilmente occupati dei ''[[file system]]'' (cosa che impedirebbe di [[umount|smontarli]]). Questo [[idioma (programmazione)|idioma di programmazione]] è talvolta descritto con l'espressione inglese «
Nei sistemi Unix è possibile rendere un qualsiasi [[programma non interattivo]] pressoché identico ad un demone [[Esecuzione in background|eseguendolo in background]] tramite il comando [[nohup]] ed effettuando la [[redirezione]] dello ''[[standard input]]'', ''[[standard output]]'' e ''[[standard error]]'' a [[/dev/null]]). Ad esempio:
Riga 32:
}}</ref>, ha anch'esso «demoni». In Mac OS X esistono anche i «servizi», ma sono concettualmente differenti.
Nei sistemi [[MS-DOS]] e affini, l'analogo dei demoni sono i programmi TSR ([[Terminate and Stay Resident]], ovvero «
In [[Microsoft Windows]], i programmi che svolgono le funzioni di demone sono i cosiddetti [[Servizio di Windows|servizi di Windows]].
|