Eu tenho uma máquina Ubuntu executando um software que requer internet. No entanto, às vezes o wifi falha (reinicialização do roteador, por exemplo) e não encontra a rede novamente, até eu atender manualmente à reinicialização do gerenciador de rede ou desligar e ligar o wifi para encontrá-lo.
Existe uma maneira possível de executar uma tarefa cron ou uma tarefa supervisord para monitorar a conectividade e se não for possível encontrar a rede para reiniciar o serviço gerenciador de rede e conectar-se a esse SSID específico?
networking
wireless
cron
Blue Genie
fonte
fonte
Respostas:
Acho que isso pode ser devido a um novo bug do gerenciador de rede, pois também comecei a enfrentar esse problema apenas recentemente - acho que depois de atualizar para o Ubuntu 15.04.
Parece que eu consegui resolver esse problema temporariamente como uma solução alternativa para esses dois arquivos:
~/.bin/WiFi-Keep-Connected
, com este conteúdo:~/.config/autostart/KeepWifiConnected.desktop
, com este conteúdo:Nota: Você precisará digitar seu nome de usuário no caminho indicado
Exec=
acima.Nota: Às vezes, reiniciar o Wi-Fi dessa maneira não é suficiente; nesse caso, tenho que reiniciar o Network Manager digitando este comando uma ou duas vezes no terminal:
sudo service network-manager restart
Portanto, pode ser uma idéia melhor modificar o script acima (apenas no caso) assim:
fonte
Não sei por que, mas, como você mencionou, às vezes, quando o wifi falha, o gerenciador de rede não encontra a rede novamente.
Eu acho que o problema é que o gerenciador de rede, após uma falha na conexão wifi, não atualiza a lista de wifi (e parece que o gerenciador de rede oculta a rede problemática). O gerenciador de rede não possui uma opção de menu de re-varredura e desativar e ativar a caixa de seleção sem fio no menu do gerenciador de rede não força uma nova varredura de wifi (como reiniciar o serviço).
Quando o gerenciador de rede perde minha conexão wireles e não encontra meu wifi novamente (e eu sabia que o wifi está funcionando), eu executo o comando:
Ele executa uma verificação wifi na interface wlan0 (wlan0 é o nome da interface sem fio no meu laptop) e mostra as redes sem fio disponíveis, mas como um efeito colateral, o gerenciador de rede atualiza automaticamente sua lista e encontra a rede perdida.
Prefiro executar o comando manualmente quando esse problema ocorrer (a reconexão da rede não garante a retomada da comunicação e alguns programas precisarão ser reiniciados).
Mas, como você mencionou, você pode agendá-lo e fazê-lo sem testar a conectividade (o processo de verificação atualiza sua lista de Wi-Fi, mas não fecha sua conexão sem fio atual, se você estiver conectado).
Se preferir, você pode testar a conectividade usando ping ou iwconfig e, se não estiver conectado, inicie a verificação.
Algo como:
Mas lembre-se de que esse script deve ser sudo ou executado com privilégios de root. Ele envia apenas 1 ping com 1 segundo tempo limite.
fonte
Acho que o problema é como a conexão se perde devido a problemas de conectividade do roteador. Reiniciar o gerenciador de rede não poderia ajudar quando o próprio roteador estava com problemas. Em vez disso, você pode criar um script para colocar o processo em execução no software para suspender o uso do SIGSTOP quando a conexão for perdida e novamente acionar o processo para continuar usando o SIGCONT quando a rede estiver disponível. E adicione o script aos seus trabalhos cron, agendando-o para ser executado a cada minuto.
Para sua referência: http://hints.macworld.com/article.php?story=20030915193440334
Espero que isto ajude.
fonte