Eu tenho um pacote debian que estou executando na inicialização.
Estou usando o upstart e acho que preciso adicionar uma dependência à configuração do upstart:
start on someProgram
Não tenho certeza de qual programa, mas não estou usando network-manager
, está desativado. Estou fazendo algo assim:
ethernet=$(ifconfig -a | grep Ethernet | grep ^e | cut -d' ' -f1)
wifi=$(ifconfig -a | grep wl | cut -d' ' -f1)
ping -I $ethernet -c 1 8.8.8.8 \
|| ping -I $wifi -c 1 8.8.8.8 \
|| echo "not online"
O problema ifconfig
nem sempre mostra a $wifi
interface porque o programa foi ativado muito cedo no processo de inicialização.
Também ping -I $ethernet -c 1 8.8.8.8
falha quando deveria ter sucesso.
Se eu fizer sleep 30
isso ping
, funcionará bem.
Alguém sabe que pacote devo esperar para que isso funcione como esperado?
Estou usando o Ubuntu 14.04 em um dispositivo incorporado.
3.0.36+ #16 SMP PREEMPT Tue Oct 31 19:17:57 EDT 2017 armv7l armv7l armv7l GNU/Linux
Achei que tinha uma resposta:
Estou descobrindo que as interfaces de rede podem ser referenciadas diretamente em vez de um pacote:
start on (local-filesystems and net-device-up IFACE!=lo)
Eu ainda gostaria de melhorá-lo um pouco para o meu caso.
Como prefiro esperar por wlan do que por eth, mas não tenho certeza se posso usar um curinga como:
IFACE=wlan*
Mas parece que isso não espera que a interface esteja disponível, em ifconfig
vez disso, espera que essa interface tenha uma conexão ativa com a Internet.
Acabei encontrando uma solução alternativa usando um script de pré-início upstart: