GNU/Linux >> Tutoriales Linux >  >> Linux

Todo sobre Daemons en Linux

Dado que el sistema operativo Linux se caracteriza por ser un sistema operativo multitarea, un demonio es, por definición, un programa que se ejecuta continuamente como un proceso en segundo plano. En resumen, la ejecución de este proceso no depende de la interacción del sistema de un usuario activo. Un usuario normal del sistema no puede controlar la ejecución periódica de un proceso daemon.

La convención de nomenclatura que define la mayoría de los procesos daemon es el "sufijo" de una letra d. Esta convención de nomenclatura permite diferenciar entre los procesos normales del sistema y los procesos impulsados ​​por demonios. Por ejemplo, sshd es un proceso daemon responsable de la gestión de entradas SSH conexiones Otro ejemplo de proceso daemon es syslogd . Es responsable de la función de registro del sistema Linux.

En un entorno Linux, el lanzamiento de demonios es en el momento del arranque. Dado que el sistema Linux es un clon perfecto de Unix, un proceso de inicio califica como el proceso principal de un demonio. Para iniciar y detener demonios en su sistema operativo Linux, primero debe acceder al /etc/init.d directorio de scripts en su sistema operativo.

Funciones comunes de demonios

  • Permite que su sistema responda correctamente a las solicitudes de red al asociar cada solicitud con un puerto de red compatible. Un puerto de red típico manejado por demonios es el puerto 80.
  • Los demonios hacen posible ejecutar o ejecutar tareas programadas del sistema. El demonio responsable de esta tarea específica se llama cron . Creará un trabajo cron que manejará la ejecución periódica de sus tareas programadas.
  • Los demonios también ofrecen una contribución invaluable para monitorear el desempeño de su sistema. Por ejemplo, pueden verificar la matriz RAID o el estado del disco duro.

Demonios de servicio de Linux útiles

  • y :Demonio de montaje automático
  • anacrona: Ejecución en tiempo de arranque de tareas cron retrasadas
  • apmd: Demonio de administración de energía avanzada
  • atd: Utiliza la funcionalidad de la herramienta para ejecutar trabajos en cola
  • autofs: funciona de la mano con el demonio automounter para facilitar el montaje y desmontaje de dispositivos del sistema bajo demanda
  • crono: un demonio que maneja la programación de tareas
  • tazas: un demonio que maneja la impresión CUPS
  • DHCP: daemon tanto para el servidor del protocolo Bootstrap de Internet como para el protocolo de configuración dinámica de host.
  • cerrado: demonio de enrutamiento responsable de múltiples protocolos de enrutamiento. Sustituye enrutado y egpup
  • httpd: un demonio que se ocupa de servidores web como Apache
  • inetd: demonio asociado con Internet Superserver
  • imapd :demonio para el servidor IMAP
  • lpd: Demonio de impresora de línea
  • Memcached: demonio de almacenamiento en caché de objetos que se distribuye en memoria
  • montado: montar demonio
  • MySQL: demonio para el servidor de base de datos MySQL
  • nombrado: demonio para el servidor DNS
  • nfsd: Demonio para compartir archivos en red
  • bloqueo nfs: Dado que nfsd está asociado con los servicios de bloqueo de archivos, este demonio puede iniciar y detener estos servicios.
  • nmbd: daemon para el bloque de mensajes de red
  • ntpd: daemon para el servicio Network Time Protocol
  • postfijo: un demonio que sirve como agente de transporte de correo. Es una alternativa a sendmail.
  • Postgresql: daemon para el servidor de base de datos de Postgres
  • enrutado: daemon para gestionar tablas de enrutamiento
  • rpcbind: demonio asociado con el enlace de llamada a procedimiento remoto
  • enviar correo: un demonio que sirve como agente de transferencia de correo
  • smbd: demonio para el servidor Samba SMB
  • smtpd: demonio para el protocolo simple de transferencia de correo
  • snmpd: demonio para el protocolo simple de administración de redes
  • calamar: demonio asociado con un servidor proxy para el almacenamiento en caché de páginas web
  • sshd: demonio asociado con Secure Shell Server
  • sincronizar: daemon para sincronizar la memoria del sistema con los archivos del sistema
  • Registro del sistema: un demonio que realiza el registro del sistema
  • tcpd: este envoltorio de servicio de demonio ejecuta protocolos de restricción de acceso relacionados con los servicios de demonio basados ​​en inetd. Implementa estas restricciones a través de hosts.allow y hosts.deny .
  • Telnetd: demonio para el servidor telnet
  • vsftpd: demonio para un protocolo de transferencia de archivos muy seguro
  • webmin: daemon para el servidor de administración basado en web
  • xinetd: demonio asociado con Enhanced Internet Supervisor
  • xntd :daemon para Network Time Server

Ya sea que sea un usuario principiante, intermedio o experto en el mundo del sistema operativo Linux, nunca dejará de familiarizarse con cualquiera de los demonios mencionados anteriormente a medida que avanza en sus habilidades y experiencia dentro de este entorno de sistema operativo.

Iniciar/detener/reiniciar demonios:el enfoque basado en terminal

Ahora que tiene una lista de demonios útiles de Linux para memorizar y explorar, lo primero que necesita saber es cómo iniciar, detener o reiniciar estos demonios. Con su terminal Linux abierta, considere las siguientes reglas de sintaxis para iniciar, detener y reiniciar un demonio en su sistema operativo Linux.

service preferred-daemon-name start

service preferred-daemon-name stop 

service preferred-daemon-name restart

Reemplace el nombre-demonio-preferido argumento de sintaxis con el nombre del daemon del sistema Linux de su elección. Puede elegir uno de la lista de daemon resaltada arriba siempre que esté activo o ya definido en su sistema Linux. Por ejemplo, podemos implementar el uso práctico de la sintaxis anterior al intentar iniciar, detener y reiniciar un demonio. Vaya a /etc/init.d directorio en su terminal para ver la lista de demonios disponibles en su sistema Linux.

Listado de los demonios de sus sistemas Linux

Una forma más efectiva de anotar los demonios disponibles en su sistema Linux en lugar de navegar a /etc/init.d directorio es enumerar todos los demonios activos e inactivos definidos de ese directorio con un solo comando. El siguiente comando es efectivo para lograr este objetivo.

$ service –status-all

Los signos positivos [+] y negativos [-] entre paréntesis que preceden a los nombres de demonios enumerados implican que están activos o inactivos, respectivamente.

Trabajar con demonios definidos por el usuario

Se deben seguir reglas o protocolos específicos para crear e implementar correctamente un demonio definido por el usuario. Estos protocolos lo ayudan a comprender completamente la ejecución de demonios en cualquier entorno Linux. Los demonios también son lo suficientemente flexibles para interactuar con los módulos del kernel a través de llamadas al sistema. Esta extensión de la funcionalidad del daemon admite su interacción con dispositivos de hardware como PDA (asistentes digitales personales), impresoras y placas controladoras externas viables. Los componentes básicos de los demonios también contribuyen a la potencia y flexibilidad características del sistema operativo Linux.

Sander Marechal demuestra y documenta cuidadosamente una implementación de daemon relacionable usando Python. Esté atento a seguir el orden de ejecución al crear este demonio. En primer lugar, su sistema Linux necesita la instalación de paquetes de Python para desarrollar demonios con éxito. Para instalar Python, puede usar el siguiente comando.

$ sudo apt install python3-pip python3-dev

El enlace al código del daemon AuthoredPython de Sander Marechal también ofrece una versión refinada del código Python 3. Sería útil si considerara implementarlo para comprender mejor cómo funcionan los demonios.

Si no está seguro de tener Python instalado, ejecute el siguiente comando en su terminal de Linux.

$ python3 --version

El propósito de cualquier demonio

Dado que un solo demonio se dedica a manejar una tarea específica, debería ejecutarla a la perfección. La tarea en cuestión puede ser tan simple como crear un informe y enviarlo a un administrador a través de sendmail o tan compleja como administrar múltiples dominios vinculados a múltiples buzones de correo. En algún momento, el daemon que vas a crear tendrá que comunicarse con otros daemons existentes.

interacción de usuario a demonio

Se desaconseja que el usuario del sistema y el daemon creado se comuniquen directamente. Si es necesario para el daemon, crea para comunicarse con un usuario del sistema. Esta comunicación se puede facilitar a través de algo así como una interfaz GUI. Esta plataforma de comunicación puede tener la complejidad de la interfaz gráfica de usuario GTK+ o la simplicidad del conjunto de señales.

Creando tu demonio

Numerosos enfoques admiten la creación de demonios. Por ejemplo, puede usar su interfaz de línea de comandos para demonizar un script de Python de la siguiente manera:

$ python my_python_script.py &

Puede guardar el código del demonio Python3 creado por Sander Marechal en un archivo de Python y convertirlo en un demonio con el comando anterior. Si bien el comando de terminal anterior creará fácilmente un demonio para usted, tendrá que lidiar con desafíos como salidas de terminal impredecibles. Estos desafíos dependen de qué tan bien haya refactorizado su código de daemon de Python. Además, el enfoque anterior no admite la asignación de archivos de bloqueo PID a demonios específicos. Hace que sea imposible controlar cualquier demonio, ya que la mayoría de ellos se ejecutarán instantáneamente. Por otro lado, si solo necesita un demonio simple, el enfoque mencionado anteriormente le dará los resultados de demonio deseados.

Estructura básica del demonio

Antes de que un daemon ejecute o realice una función prevista, tendrá que considerar algunas reglas preconcebidas que conducen a su ejecución. Puede pensar en estas reglas como tareas domésticas de bajo nivel que conducen a su tarea real. Estas reglas se pueden dividir en los siguientes pasos.

  • La creación de una bifurcación a partir de un proceso principal se lleva a cabo primero
  • Cambio de umask (máscara de modo de archivo) a continuación
  • Los registros se abren para escribir
  • Se crea un SID (ID de sesión) único
  • La ejecución cambia del directorio de trabajo actual a una ubicación secundaria para preservar la integridad del archivo
  • Los descriptores de archivo estándar están cerrados
  • Ejecución de código daemon objetivo

Puede encontrar más información sobre ejemplos de implementaciones de demonios en GitHub.


Linux
  1. Requisitos del sistema Linux Kali

  2. Comando de apagado de Linux

  3. Comando Fsck en Linux

  4. Aprende más sobre tu sistema Linux con inxi

  5. Linux – ¿Todo es un archivo?

Todo lo que necesita saber sobre el sistema operativo Linux Zorin

Todo lo que necesita saber sobre el sistema operativo Peppermint Linux

FreeBSD vs Linux:20 cosas que debe saber sobre ambos sistemas

Todo lo que necesita saber sobre Black Lab Linux

Todo lo que necesita saber sobre la distribución Linux Mint

Todo lo que necesita saber sobre los inodos en Linux