Esses programas usarão sockets Netlink para falar diretamente com o driver do hardware da rede. lsof
versão 4.85 adicionou suporte a sockets Netlink, mas nos meus testes no CentOS 5.8, a funcionalidade não aparece para trabalhar muito bem. Talvez isso dependa de recursos adicionados em novos kernels.
No entanto, é possível adivinhar bem quando você encontra um soquete Netlink. Se você cat /proc/net/netlink
obtiver uma lista de sockets Netlink abertos, incluindo o PID dos processos que os abriram. Então, se você lsof -p $THEPID
desses PIDs, encontrará entradas com sock
na coluna TYPE
e can't identify protocol
na coluna NAME
. Não é garantido que estes sejam soquetes Netlink, mas é uma boa aposta.
Você também pode inferir que um determinado processo está falando diretamente com uma interface se tiver arquivos em /sys/class/net/$IFNAME
open.
Agora, tudo o que foi dito, acho que sua pergunta está errada.
Digamos que há um comando que não descobri. Chame de lsif -i wlan0
e diga que retorna uma lista de PIDs que acessam a interface nomeada. O que você poderia fazer com isso, o que permitiria que você "não perturbasse" processos usando essa interface, como você solicitou? Você estava planejando matar todos os processos usando essa interface primeiro? Isso é muito perturbador. :) Talvez você estivesse pensando que deixar cair a interface de baixo de um processo usando-a seria prejudicial?
O que, no final, é tão ruim sobre ifconfig wlan0 down
?
As interfaces de rede não são dispositivos de armazenamento. Você não precisa liberar dados no disco e desmontá-los normalmente. Não quebrar os sockets abertos pode valer a pena, mas como você já sabe, você pode descobrir isso com netstat
e lsof
. wpa_supplicant
não vai ficar de mau humor se você saltar sua interface sem cerimônia. (Se isso acontecer, é um bug e precisa ser consertado; isso não indicaria alguma falha sua).
Programas de rede bem escritos lidam com essas coisas, é claro. Redes não são confiáveis. Se um programa não puder lidar com uma interface sendo rejeitada, ela também não será capaz de lidar com cabos Ethernet desconectados, modems DSL ou