Solche Programme verwenden Netlink-Sockets , um direkt mit dem Treiber der Netzwerkhardware zu kommunizieren . lsofVersion 4.85 fügte Unterstützung für Netlink-Sockets hinzu, aber in meinen Tests unter CentOS 5.8 scheint die Funktion nicht sehr gut zu funktionieren. Vielleicht hängt es von Funktionen ab, die in neueren Kerneln hinzugefügt wurden.
Es ist jedoch möglich, eine ziemlich gute Vermutung anzustellen, wann Sie auf einen Netlink-Socket gestoßen sind. Wenn Sie cat /proc/net/netlinkeine Liste der geöffneten Netlink-Sockets erhalten, einschließlich der PID der Prozesse, in denen sie geöffnet sind. Wenn Sie lsof -p $THEPIDdiese PIDs verwenden, finden Sie Einträge mit sockin der TYPESpalte und can't identify protocolin der NAMESpalte. Es ist nicht garantiert, dass dies Netlink-Sockets sind, aber es ist eine ziemlich gute Wette.
Sie können auch darauf schließen, dass ein bestimmter Prozess direkt mit einer Schnittstelle kommuniziert, wenn Dateien /sys/class/net/$IFNAMEgeöffnet sind.
Nach all dem denke ich, dass Ihre Frage falsch ist.
Angenommen, es gibt einen Befehl, den ich nicht entdeckt habe. Rufen Sie es auf lsif -i wlan0und sagen Sie, es gibt eine Liste von PIDs zurück, die auf die benannte Schnittstelle zugreifen. Was könnten Sie damit tun, um Prozesse über diese Schnittstelle, wie Sie es gewünscht haben, nicht zu stören? Wollten Sie zuerst alle Prozesse über diese Schnittstelle abbrechen? Das ist ziemlich beunruhigend. :) Vielleicht haben Sie stattdessen gedacht, dass das Herausfallen der Benutzeroberfläche unter einem Prozess, der sie verwendet, irgendwie schädlich wäre?
Worum geht es am Ende so schlecht ifconfig wlan0 down?
Netzwerkschnittstellen sind keine Speichergeräte. Sie müssen keine Daten auf die Festplatte leeren und die Bereitstellung ordnungsgemäß aufheben. Es mag sich lohnen, keine Steckdosen aufzubrechen, aber wie Sie bereits wissen, können Sie dies mit netstatund herausfinden lsof. wpa_supplicantwird nicht schmollen, wenn Sie seine Schnittstelle kurzerhand abprallen. (Wenn dies der Fall ist, handelt es sich um einen Fehler, der behoben werden muss. Dies würde keinen Fehler von Ihnen anzeigen.)
Gut geschriebene Netzwerkprogramme bewältigen solche Dinge selbstverständlich. Netzwerke sind unzuverlässig. Wenn ein Programm nicht damit umgehen kann, dass eine Schnittstelle zurückgeworfen wird, kann es auch nicht mit nicht angeschlossenen Ethernet-Kabeln, balkigen DSL-Modems oder Baggern umgehen .