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.service を終了した後もソケットを開いたままにする、tftp.socket という別の「サービス」が実行されていることがわかりました。まだ理解できないのは、なぜこれがシステム pid の一部として表示されるのかということです。

答え1

tftp サーバーは、tftp 要求を処理するために起動されます。そのような要求がない場合は、tftpsystemdサーバーは起動しません。ただし、ポート 69 で着信要求をリッスンするプロセスが必要です。そうでない場合、その要求は bitbucket に送られます。

そのプロセスは systemd です。

ポート 69 にリクエストが到着すると、systemd はリクエストを処理するために tftp サーバーをフォークします。tftp サーバーが終了すると、サーバーは終了します。

関連情報