Você pode usar um script de dispatcher do Network Manager para conectar-se aos eventos de subida e descida da interface.
sudo touch /etc/NetworkManager/dispatcher.d/00do_stuff
sudo chmod u+x /etc/NetworkManager/dispatcher.d/00do_stuff
O script pode ser algo assim:
#!/bin/sh
if [ = wlp3s0f0 -a = up -a $CONNECTION_ID = wlan ]; then
# do stuff
fi
man networkmanager
explica que, se um script dispatcher for executado por muito tempo, o script será eliminado em algum momento, portanto, se essa for uma possibilidade, é melhor usar outro script para executar a tarefa:
#!/bin/sh
if [ = wlp3s0f0 -a = up -a $CONNECTION_ID = wlan ]; then
(/home/user/scripts/do_stuff.sh) & disown
fi
O Network Manager executa todos os scripts em /etc/NetworkManager/dispatcher.d
em ordem alfabética cada vez que determinados eventos são acionados, passando a interface e o evento como argumentos.
$CONNECTION_ID
é disponibilizado para o script pelo ambiente e, neste caso, é verificado se estamos conectados ao usando o perfil de conexão correto, conforme relatado por man networkprofile
(não tenho certeza sobre quais implicações isso tem No meu caso, funciona bem se eu verificar $CONNECTION_ID
no meu SSID, mas não tenho certeza do que aconteceria se isso coincidisse com o nome de outro perfil de conexão com fio).