Gibt es eine Möglichkeit, eine Netzwerkverbindung an eine PID (Prozess-ID) zu binden, ohne auf lsof oder netstat zu verzichten?Wie bindet man eine Netzwerkverbindung an eine PID, ohne lsof oder netstat zu verwenden?
Momentan wird lsof verwendet, um abzufragen, welche Verbindungen zu welcher Prozess-ID gehören. Allerdings kann lsof oder netstat auf einem ausgelasteten Host ziemlich teuer sein und würde es vermeiden wollen, auf diese Tools zu verzichten.
Gibt es einen ähnlichen Ort wie/proc/$ pid, wo man nach diesen Informationen suchen kann? Ich weiß, was die Netzwerkverbindungen sind, indem ich/proc/net untersuche, kann aber nicht herausfinden, wie man das an eine PID bindet. In/proc/$ pid gibt es keine Netzwerkinformationen.
Die Zielhosts sind Linux 2.4 und Solaris 8 bis 10. Wenn möglich, eine Lösung in Perl, aber bin bereit, C/C++ zu tun.
zusätzliche Hinweise:
Ich mag das Ziel hier betonen, ist eine Netzwerkverbindung zu einer PID zu binden. Das eine oder das andere zu bekommen ist trivial, aber es scheint schwierig zu sein, die beiden in einer billigen Weise zusammenzubringen. Danke für die Antworten bis jetzt!
ich netstat blickte eine Weile zurück. Ich bin mir ziemlich sicher, dass es sich einfach durchpflügt und einen Cache von Verbindungen baut. Ich glaube nicht, dass da Magie im Gange ist. – Duck
@Duck keine Magie benötigt :-) Und es ist immer noch eine gute Referenz auf den Code kopieren, als er darauf hingewiesen, nicht netstat in einem Kind-Prozess ausführen möchten. – lothar