无法终止 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 后,该服务仍使套接字保持打开状态。我仍然不明白为什么这会显示为系统 pid 的一部分。

答案1

启动 tftp 服务器来处理 tftp 请求。由于没有这样的请求,因此systemd不启动 tftp 服务器。但需要有一个进程来监听端口 69 上的传入请求,否则该请求将进入 bitbucket。

该进程是 systemd。

当端口 69 上的请求到来时,systemd 会分叉一个 tftp 服务器来处理该请求。当 tftp 服务器处理完毕后,它就会死机。

相关内容