GNU/Linux >> Tutoriales Linux >  >> Linux

activación de socket systemd frente a xinetd

No creo que la activación de socket systemd sea significativamente mejor que xinetd activación, cuando se considera aisladamente; el último también es estable y ha existido por más tiempo. La activación de sockets es realmente interesante para el desacoplamiento de servicios:permite que los servicios se inicien en paralelo, incluso si necesitan comunicarse, y permite reiniciar los servicios de forma independiente.

Si tiene un servicio compatible con xinetd Activación de estilo, se puede usar con activación de socket:a .socket descripción con Accept=true se comportará de la misma manera que xinetd . También necesitarás un .service archivo para describir el servicio. Los beneficios completos de la activación de socket systemd requieren soporte en el demonio que proporciona el servicio. Consulte la entrada de blog sobre el tema.

Mi consejo tiende a ser "si no está roto, no lo arregles", pero si quieres convertir un xinetd El servicio basado en systemd es ciertamente factible.


Puedes usar xinetd o systemd para la activación del socket, ambos funcionarán. Yo personalmente encuentro xinetd más fácil de usar porque todo está en un archivo, pero también he usado systemd porque es más flexible, especialmente con la escucha en múltiples direcciones y el reenvío de sockets a sockets UNIX y no solo a sockets IP.

Aquí, como ejemplo, solía reenviar la conexión TCP al socket del archivo MySQL:

/etc/systemd/system/mysql-proxy.servicio

[Unit]                                                  
Description=MySql Proxy Service
Requires=mysql-proxy.socket

[Service]
Environment=MYSQL_PROXY_TARGET=/var/run/mysql/mysql.sock
EnvironmentFile=-/etc/sysconfig/mysql-proxy
ExecStart=/usr/lib/systemd/systemd-socket-proxyd ${MYSQL_PROXY_TARGET}

/etc/systemd/system/mysql-proxy.socket

[Unit]                                                  
Description=MySql Proxy Socket

[Socket]
ListenStream=192.168.1.1:3306
ListenStream=192.168.2.1:3306
NoDelay=true
FreeBind=true

[Install]
WantedBy=sockets.target

El reenvío tradicional necesita Accept=true , systemd Se supone que los procesos conscientes manejan múltiples conexiones en un proceso o bifurcan procesos adicionales según sea necesario.


Linux
  1. 10 comandos prácticos de systemd:una referencia

  2. Cómo crear un servicio Systemd en Linux

  3. Agregar un nuevo servicio a Linux systemd

  4. ¿Escribir archivos de servicio básicos de Systemd?

  5. Linux – ¿Ubicación del script Fsck?

Administrar el inicio usando systemd

Comandos Systemctl para administrar el servicio Systemd

Uso de las funciones de systemd para proteger los servicios

Administrar cgroups con systemd

Cómo detener el servicio systemd

¿Cómo enviar un correo electrónico si se reinicia un servicio systemd?