
Ich versuche, ein Verhalten, das ich beobachte, besser zu verstehen. Ich habe die Kontrolle über einen Server übernommen, auf dem TFTP ausgeführt wurde, und versuche, es auszuschalten. Ich habe bereits Folgendes ausgeführt:
systemctl stop tftp
systemctl stop xinetd
Beim Stoppen des TFTP-Dienstes wird jedoch angezeigt
Achtung: tftp.service wird gestoppt, kann aber immer noch aktiviert werden durch: tftp.socket
ss -lnpu
danach gibt mir
UNCONN 0 0 :::69
:::* users:(("systemd",pid=1,fd=60))
Ich habe nachgesehen und der Port hört tatsächlich noch zu, aber die PID ist als systemd aufgeführt? Ich verstehe das Verhalten nicht – wie kann TFTP direkt von systemd ausgeführt werden?
Bearbeiten: Ich habe herausgefunden, dass ein anderer „Dienst“ namens tftp.socket ausgeführt wurde, der den Socket offen hielt, nachdem ich den tftp.service beendet hatte. Was ich immer noch nicht verstehe, ist, warum dies als Teil der System-PID angezeigt wird.
Antwort1
Der TFTP-Server wird gestartet, um eine TFTP-Anfrage zu verarbeiten. Sobald keine solche Anfrage vorliegt, systemd
wird der TFTP-Server nicht gestartet. Es muss jedoch einen Prozess geben, der auf Port 69 auf die eingehende Anfrage lauscht, sonst landet diese Anfrage im Bitbucket.
Dieser Prozess ist systemd.
Wenn eine Anfrage auf Port 69 eingeht, ruft systemd einen TFTP-Server ab, um die Anfrage zu verarbeiten. Wenn der TFTP-Server fertig ist, stirbt er einfach.