Nachdem das STOP-Signal an einen Prozess gesendet wurde, funktioniert es nicht mehr wie erwartet, akzeptiert jedoch weiterhin TCP-Verbindungen. So funktioniert es irgendwie?
Nachdem das STOP-Signal an einen Prozess gesendet wurde, funktioniert es nicht mehr wie erwartet, akzeptiert jedoch weiterhin TCP-Verbindungen. So funktioniert es irgendwie?
Antworten:
Sobald ein Unix-Prozess eine IP-Adresse und einen Port an einen Stream-Socket bindet, akzeptiert der Kernel TCP-Verbindungen für diese Adresse / diesen Port und fährt fort, bis der Socket nicht mehr gebunden oder geschlossen ist. Der Prozess erhält über den Systemaufruf accept () Zugriff auf die Verbindungen, die Verbindungen werden jedoch trotzdem hergestellt. Nach dem ersten TCP-Handshake ist die Verbindung inaktiv, bis accept () aufgerufen wird und der Prozess beginnt, den verbundenen Socket zu verwenden. Der Kernel akzeptiert, puffert und bestätigt auch eine systemspezifische Datenmenge, bevor accept () aufgerufen wird.
Es treten also Verbindungen auf, aber es gibt keine realen Aktivitäten (E-Mails werden gesendet, Webseiten werden bedient usw.), während der Prozess angehalten wird.