Daemons en Linux: qué son y cómo funcionan

daemons en Linux
daemons en Linux

Un daemon (o demonio) es un tipo especial de proceso en Linux (y otros sistemas Unix) que se ejecuta en segundo plano para realizar tareas específicas, a menudo sin interacción directa con el usuario. Los daemons son esenciales para el funcionamiento del sistema operativo, ya que proporcionan servicios y funcionalidades que requieren ejecución continua o activación bajo ciertas condiciones.

👉 Y recuerda, si quieres aprender más de Linux, pincha en este curso de Linux gratis

Características de un daemon

  1. Ejecuta en segundo plano:
    • No tiene una interfaz gráfica ni interactúa directamente con el usuario.
    • Frecuentemente asociado a tareas automáticas o de mantenimiento.
  2. Inicio automático:
    • Se inicia durante el arranque del sistema o cuando un servicio lo requiere.
    • Ejemplo: Un servidor web (como Apache) inicia un daemon para manejar solicitudes HTTP.
  3. Desacoplado del terminal:
    • Un daemon se «desvincula» del terminal o consola en la que se inició, funcionando de forma independiente.
  4. Nombres terminados en «d»:
    • Por convención, los daemons suelen terminar con la letra d. Ejemplo: sshd (maneja conexiones SSH), crond (ejecuta tareas programadas).

Ejemplos de daemons comunes

DaemonFunción
sshdProporciona acceso remoto seguro mediante SSH.
httpd (Apache)Maneja solicitudes HTTP para un servidor web.
mysqldAdministra bases de datos MySQL.
crondEjecuta tareas programadas definidas en cron.
systemdGestiona servicios y procesos del sistema.
udevdAdministra eventos relacionados con hardware conectado.
rsyslogdManeja registros del sistema (logs).

Cómo funcionan los daemons

  1. Inicio:
    • Los daemons se inician durante el arranque del sistema o manualmente mediante un administrador de servicios como systemd.
    • También pueden ser iniciados automáticamente por otros procesos cuando es necesario.
  2. Desvinculación del terminal:
    • Al iniciar, el daemon se separa del terminal. Esto implica:
      • Ejecutar el proceso como hijo del proceso raíz (init o systemd).
      • Redirigir su entrada, salida y errores estándar a /dev/null o archivos de registro.
  3. Ejecución continua:
    • Los daemons permanecen en ejecución esperando solicitudes o eventos, como una conexión SSH o el momento programado para ejecutar una tarea.

Gestión de daemons en Linux

La gestión de daemons en sistemas modernos generalmente se realiza con systemd.

Ver servicios activos (daemons en ejecución)

systemctl list-units --type=service

Iniciar un daemon manualmente

#Iniciar el servicio SSH (sshd).
sudo systemctl start sshd

Detener un daemon

sudo systemctl stop sshd

Habilitar un daemon para que inicie automáticamente

sudo systemctl enable sshd

Deshabilitar un daemon

sudo systemctl disable sshd
Ver el estado de un daemon
sudo systemctl status sshd

Ejemplo: Crear un daemon simple

Supongamos que quieres crear un daemon que registre la hora actual cada minuto en un archivo de texto.

1) Crear script

#Escribir un script de shell
#!/bin/bash 
while true; do echo "$(date)" >> /var/log/mi_daemon.log sleep 60 done

2) Convertirlo en un servicio del sistema

sudo nano /etc/systemd/system/mi_daemon.service
#escribimos esto
[Unit] Description=Mi Daemon de Prueba 
[Service] ExecStart=/path/to/mi_daemon.sh 
Restart=always 
[Install] WantedBy=multi-user.target

3) Activar el daemon

sudo systemctl daemon-reload
sudo ystemctl start mi_daemon.service
sudo systemctl enable mi_daemon.service
#verificamos que esté funcionando
sudo systemctl status mi_daemon.service

En resumen, los daemons en Linux son la columna vertebral de muchos servicios del sistema. Aunque trabajen de manera silenciosa en segundo plano, su correcto funcionamiento garantiza la estabilidad y la seguridad del entorno. Conocer cómo identificarlos y gestionarlos es una habilidad clave para cualquier persona interesada en la administración de sistemas.

Comentarios

No hay comentarios aún. ¿Por qué no comienzas el debate?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *