Embora seja certamente possível usar dbus
, pessoalmente eu iria com simples bash enquanto loop + awk
while [ "$(iwconfig 2> /dev/null | awk '/Access Point/ && /XX:YY:ZZ:11:22:33/ {print "true" }')" != "true" ]; do : ; sleep 0.25 ;done ; echo DONE
O que está acontecendo lá? Enquanto o loop continua em execução, a saída de teste de iwconfig
foi filtrada com awk
. Até onde o awk
não encontrar o endereço MAC do acesso ao qual você deseja se conectar, o loop continua em execução. Assim que awk
perceber que você está associado a esse AP em particular, a condição de teste [ "String1" != "String2" ]
se tornará falsa, será interrompida e passará para o comando echo DONE
. Naturalmente, echo DONE
é o que pode ser substituído pelo programa que você deseja executar.
Esse comando pode ser executado manualmente ou colocado em um script, e o script adicionado à lista de aplicativos de inicialização.
Simples, simples e faz o trabalho. Como eu disse no começo, é possível usar o dbus, mas não é tão simples assim.