¿Qué es un demonio?

Este extraño término es una reliquia de la historia de Unix, pero los demonios todavía se usan hoy. El término es sinónimo del concepto de "servicio", una tarea que se ejecuta de forma continua, normalmente sin la interacción del usuario.

Hay varios ejemplos comunes de demonios, e incluso si no necesita saber exactamente cómo funcionan, al menos es útil poder identificarlos.

¿Qué es un demonio?

Un daemon o Disk And Execution MONitor es un programa que se ejecuta como un proceso en segundo plano en lugar de uno interactivo. Los demonios son comunes entre las herramientas de red y las tareas de administración del sistema. Puede controlar algunos demonios enviándoles señales.

¿Cómo se pronuncia "daemon"?

A pesar de las apariencias, la palabra demonio se pronuncia típicamente igual que la palabra "demonio". Tenga la seguridad de que no tiene nada que ver con los rituales satánicos. De hecho, el nombre deriva en última instancia de la mitología griega y del concepto de espíritu rector, que trabaja incansablemente en segundo plano. En este sentido, ¡es un nombre muy apropiado!

¿Cómo funcionan los demonios?

En los sistemas Unix, el término demonio a menudo se usa indistintamente con el término proceso en segundo plano. En otras palabras, es un proceso que se ha separado de cualquier shell y continúa ejecutándose de forma no interactiva. Un verdadero demonio también debe asignarse a sí mismo como hijo del proceso de inicio especial que tiene el número de identificación de proceso especial 1.

Otras tareas típicas involucradas en el aislamiento del demonio incluyen:

  • Sandboxing eliminando variables innecesarias de su entorno.
  • Establecer el directorio raíz (/) como el directorio de trabajo actual del proceso.
  • Redirigir descripciones de archivo para entrada, salida y error a archivos de registro o / dev / null .

Otros sistemas, como Windows y macOS, también usan demonios. En el caso de Windows, los servicios son el equivalente más cercano.

¿Cuáles son algunos demonios comunes?

Cron ( crond ) es un demonio que ejecuta otros programas en un horario. La mayoría de los sistemas Unix lo configuran para que se ejecute automáticamente al iniciarse. Se activa una vez por minuto, verifica los archivos de configuración y ejecuta cualquier comando configurado para ejecutarse durante ese minuto. Cron es lo suficientemente inteligente como para reaccionar a los cambios en los archivos crontab cuando cambian. No es necesario que lo reinicie usted mismo.

Consulte también: Cómo usar Crontab para automatizar tareas repetitivas en Linux

Los servidores web, como httpd de Apache, a menudo se ejecutan como demonios; es lo que significa la "d". El demonio de Apache maneja las solicitudes entrantes creando un grupo de procesos secundarios para compartir la carga. Puede utilizar un programa auxiliar, como apachectl , para controlar más fácilmente el demonio httpd.

Finalmente, sshd es otro ejemplo común de demonio, esta vez uno que maneja conexiones SSH. Nuevamente, normalmente comienza desde el inicio y permanece ejecutándose indefinidamente, dependiendo de las señales para ciertas operaciones. Por ejemplo, una señal SIGHUP hace que sshd se vuelva a ejecutar, recargando su archivo de configuración cuando lo hace.

Consulte también: ¿Qué es SSH y qué representa?

Los demonios son proveedores de servicios vitales

Los demonios se ejecutan continuamente y realizan tareas vitales para mantener su computadora en funcionamiento. A menudo están involucrados cuando una computadora necesita actuar como servidor, actuando en nombre de otros clientes.

Los demonios son un componente vital de un servidor Linux. Si es nuevo en la configuración de un servidor, consulte nuestros consejos para comenzar.