¿Cómo detener con gracia el proceso que ejecuta un servidor TCP en un puerto específico?

¿Cómo detener con gracia el proceso que ejecuta un servidor TCP en un puerto específico?

Tengo una unidad de servicio systemd que inicia un servidor tcp en un puerto específico de la máquina host.

pero al reiniciar el puerto continúa ejecutándose y si reinicio el servicio aparece una dirección de error que ya está en uso.

Al investigar más, encontré que el puerto del servidor TCP todavía está abierto porque el servicio no pudo iniciarse, pero si detenemos el servicio, el puerto TCP abierto se cierra.

información relacionada