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.