¿Cómo convertir un servicio de xinetd a SystemD?
En la entrada de hoy vamos a ver cómo convertir un servicio de xinetd a SystemD. Esto puede ser muy útil si hemos subido de versión un sistema, por ejemplo, un RHEL 5 o 6, a versiones superiores, como la 7, 8 u 9.
De xinetd ya os hablé en su día. Básicamente se encarga de tener la misma función que initd, esto es, que inicia programas que brindan servicios para Internet. Dichos servicios tienen su configuración de arranque en un fichero ubicado dentro de la carpeta /etc/xinetd.d
Convertir un servicio de xinetd a SystemD
No nos vamos a ir mucho por las ramas. Como ejemplo, vamos a utilizar un servicio configurado de NRPE que tenemos con el fichero de configuración ubicado en /etc/xinetd.d/nrpe
, con este aspecto:
service nrpe { flags = REUSE socket_type = stream port = 5666 wait = no user = nagios group = nagios server = /usr/local/nagios/bin/nrpe server_args = -c /usr/local/nagios/etc/nrpe.cfg --inetd log_on_failure += USERID disable = no only_from = 127.0.0.1 }
La ruta del binario de la aplicación se maneja desde /usr/local/nagios/bin/nrpe
y su fichero de configuración está en /usr/local/nagios/etc/nrpe.cfg
El archivo de servicio anterior se traduciría a los dos archivos de unidad siguientes:
El primero fichero /etc/systemd/system/nrpe.socket
, con el siguiente contenido:
[Unit] Description=NRPE Socket [Socket] ListenStream=5666 Accept=yes [Install] WantedBy=sockets.target
Y el segundo fichero, llamado /etc/systemd/system/nrpemorse@.service
, con el contenido:
[Unit] Description=NRPE Per-Connection Server [Service] ExecStart=/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg --inetd User=nagios Group=nagios StandardInput=socket
Una vez hecho esto, añadimos la nueva unidad al arranque y encendemos:
systemctl enable nrpe.socket systemctl start nrpe.socket systemctl status -l nrpe.socket
De esta manera ya tendremos pasado el servicio de xinetd a SystemD.