
Estoy tratando de comprender mejor un comportamiento que veo: tomé el control de un servidor que tenía TFTP en ejecución y estoy tratando de apagarlo. Ya corrí:
systemctl stop tftp
systemctl stop xinetd
Sin embargo, al detener el servicio tftp dice
Advertencia: Deteniendo tftp.service, pero aún se puede activar mediante: tftp.socket
ss -lnpu
despues me da
UNCONN 0 0 :::69
:::* users:(("systemd",pid=1,fd=60))
Lo verifiqué y el puerto sigue escuchando, pero ¿el PID aparece como systemd? No entiendo el comportamiento: ¿cómo Systemd ejecuta TFTP directamente?
Editar: descubrí que había otro "servicio" llamado tftp.socket en ejecución que mantenía el socket abierto después de que eliminé el tftp.service. Lo que todavía no entiendo es por qué esto aparece como parte del pid del sistema.
Respuesta1
El servidor tftp se inicia para manejar una solicitud tftp. Como el registro no existe tal solicitud, systemd
no inicia el servidor tftp. Pero es necesario que haya un proceso que escuche la solicitud entrante en el puerto 69; de lo contrario, esa solicitud aterriza en el bitbucket.
Ese proceso es systemd.
Cuando llega una solicitud en el puerto 69, systemd bifurca un servidor tftp para manejar la solicitud. Cuando el servidor tftp finaliza, simplemente muere.