無法終止 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 伺服器完成後,它就死掉了。

相關內容