Невозможно завершить TFTP

Невозможно завершить TFTP

Я пытаюсь лучше понять поведение, которое я наблюдаю - я взял под контроль сервер, на котором был запущен TFTP, и пытаюсь его отключить. Я уже запустил:

systemctl stop tftp

systemctl stop xinetd

Однако при остановке службы tftp появляется сообщение

Предупреждение: останавливается tftp.service, но его все еще можно активировать с помощью: tftp.socket

ss -lnpuпотом дает мне

UNCONN      0      0                             :::69                                        
:::*                   users:(("systemd",pid=1,fd=60))

Я проверил, и порт действительно все еще слушает, но PID указан как systemd? Я не понимаю поведение - как TFTP запускается напрямую systemd?

Редактировать: Я понял, что была еще одна "служба" под названием tftp.socket, которая работала и держала сокет открытым после того, как я убил tftp.service. Чего я до сих пор не понимаю, так это почему это отображается как часть systmed pid.

решение1

tftp-сервер запускается для обработки tftp-запроса. Поскольку такого запроса нет, systemdне запускает tftp-сервер. Но должен быть процесс, который прослушивает входящий запрос на порту 69, иначе этот запрос попадает в bitbucket.

Этот процесс называется systemd.

Когда приходит запрос на порт 69, systemd отключает tftp-сервер для обработки запроса. Когда tftp-сервер завершает работу, он просто умирает.

Связанный контент