Se você sabe como colocar um script de inicialização para o LXDE (veja a documentação ), você sempre pode criar um script script personalizado:
until ip link show $interface | grep -F -q "state UP"; do
sleep 10 # wait every ten second
done
# interface is up, now start program
exec bla
Explicação:
-
ip link show $interface
imprime uma linha com o status da interface (neste casoenp0s25
):3: enp0s25: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
-
grep -F -q "state UP"
verifica se a saída contém a linhastate UP
. Se sim, retorna sucesso (código de saída 0), caso contrário, falha (código de saída 1). -
until … do; sleep 10; done
executasleep 10
até o comando ter êxito, ou seja, atéip
mostrarstate UP
. Enquanto a interface não estiver ativa, aguarde 10 segundos e verifique novamente. -
quando a interface está ativa, o loop termina e o seguinte script é executado.
Isto é, obviamente, "ocupado esperando" e não é uma solução ideal, mas sempre funcionará. (Ou use ping -W 2 -c 1 google.com >& /dev/null
em vez de ip … | grep
se você quiser garantir conectividade real à Internet.)
Se você usar algum gerenciador de rede, verifique sua documentação se puder adicionar scripts que são executados ao estabelecer uma conexão de rede. No entanto, isso pode funcionar apenas com acesso root, o que dificulta o início de um programa na sua sessão X.