Como monitorar a conectividade do NetworkManager?

1

Eu quero iniciar um determinado aplicativo quando o NetworkManager se conecta a determinado WiFi. Mas do DBus, não consegui encontrar tal sinal do NetworkManager, exceto uma notificação do libNotify. Existe uma maneira mais direta?

    
por Magicloud 07.01.2016 / 05:35

1 resposta

0

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.

    
por Sergiy Kolodyazhnyy 07.01.2016 / 10:03