Un servicio, programa residente o demonio[1][2][3][4](en inglés, daemon) es un tipo especial de programa que se ejecuta en segundo plano, en vez de ser controlado directamente por el usuario.[5] Este tipo de programas continúa en el sistema, es decir, que puede ejecutarse de forma persistente o reiniciarse si se intenta matar el proceso dependiendo de la configuración del demonio y de las políticas del sistema. El uso de este nombre viene del retroacrónimo "Daemon", Disk And Execution Monitor.
Los programas tipo demonio reciben este nombre en los sistemas UNIX. En otros sistemas existen procesos similares como los TSRs de MS-DOS o los servicios de Windows.
Según una investigación realizada por Richard Steinberg, la palabra daemon fue utilizada en 1963 por primera vez, en el área de la informática, para denominar a un proceso que realizaba backups en unas cintas. Este proceso se utilizó en el proyecto MAC del MIT y en una computadora IBM 7094.[6] Dicho proyecto estaba liderado por Fernando J. Corbató, quien afirma que se basó en el demonio de James Maxwell que era una especie de vigilante que residía en medio de un recipiente dividido en dos, lleno de moléculas. El vigilante o demonio se encargaba de permitir, dependiendo de la velocidad de la molécula, que éstas pasaran de un lado al otro.[7]
Los demonios suelen tener las siguientes características:
/var/log/
en los UNIX más modernos) o utilizan otros demonios especializados en dicho registro como el syslogd
.Por ejemplo, una máquina que alberga un servidor web utilizará un demonio HTTP para ofrecer el servicio y que los visitantes a dicha web puedan acceder. Otro ejemplo son los demonios cronológicos como cron, que realizan tareas programadas como mantenimiento del sistema en segundo plano.