Usando o Ubuntu 11.10 (Unity 3D) e uma conexão de Internet a cabo (DSL) sem roteador ou modem.
Se eu desconectar minha conexão com a Internet, posso reconectar clicando no ícone do gerenciador de rede e selecionando uma conexão no menu suspenso, pois minhas conexões estão visíveis. Não há necessidade de reiniciar o gerenciador de rede.
Mas sempre que a conexão à Internet cai por si só , abro um terminal e uso, sudo service network-manager restart
pois não vejo nenhuma conexão no menu suspenso do gerenciador de rede. Somente após o comando, o gerenciador de rede inicia e se conecta automaticamente.
Existe alguma configuração para que o gerenciador de rede não precise ser reiniciado toda vez que a conexão cair (em vez de desconectá-la quando não precisar ser reiniciada)?
Acho que em outras palavras, não quero que o gerenciador de rede pare enquanto estiver usando o computador, independentemente de minha conexão com o ISP ter caído ou não.
Não é muito importante abrir um terminal e digitar o comando e a senha, mas se houver uma maneira de garantir que o gerenciador de rede não pare, seria melhor.
edição datada de 26 de janeiro de 2012: linhas do syslog
Jan 25 20:09:36 aes-Inspiron-1545 pppd[3539]: No response to 3 echo-requests
Jan 25 20:09:36 aes-Inspiron-1545 pppd[3539]: Serial link appears to be disconnected.
Jan 25 20:09:36 aes-Inspiron-1545 pppd[3539]: Connect time 241.5 minutes.
Jan 25 20:09:36 aes-Inspiron-1545 pppd[3539]: Sent 3575961 bytes, received 79026206 bytes.
Jan 25 20:09:36 aes-Inspiron-1545 pppd[3539]: Connection terminated.
Jan 25 20:09:36 aes-Inspiron-1545 avahi-daemon[836]: Withdrawing workstation service for ppp0.
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <info> (eth0): device state change: activated -> failed (reason 'ppp-disconnect') [100 120 13]
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <warn> Activation (eth0) failed.
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: SCPlugin-Ifupdown: devices removed (path: /sys/devices/virtual/net/ppp0, iface: ppp0)
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <info> (eth0): now unmanaged
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <info> (eth0): device state change: failed -> unmanaged (reason 'removed') [120 10 36]
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <info> (eth0): deactivating device (reason 'removed') [36]
Jan 25 20:09:36 aes-Inspiron-1545 dbus[802]: [system] Activating service name='org.freedesktop.nm_dispatcher' (using servicehelper)
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <warn> could not read ppp stats: No such device
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <info> (eth0): cleaning up...
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <info> (eth0): taking down device.
Jan 25 20:09:36 aes-Inspiron-1545 kernel: [18027.155552] sky2 0000:09:00.0: eth0: disabling interface
Jan 25 20:09:36 aes-Inspiron-1545 avahi-daemon[836]: Interface eth0.IPv6 no longer relevant for mDNS.
Jan 25 20:09:36 aes-Inspiron-1545 avahi-daemon[836]: Leaving mDNS multicast group on interface eth0.IPv6 with address fec0::b:223:aeff:fe2d:2431.
Jan 25 20:09:36 aes-Inspiron-1545 avahi-daemon[836]: Withdrawing address record for 2002:1b00:3b4f:b:223:aeff:fe2d:2431 on eth0.
Jan 25 20:09:36 aes-Inspiron-1545 avahi-daemon[836]: Withdrawing address record for 2002:1b00:3754:b:223:aeff:fe2d:2431 on eth0.
Jan 25 20:09:36 aes-Inspiron-1545 avahi-daemon[836]: Withdrawing address record for 2002:7345:f137:b:223:aeff:fe2d:2431 on eth0.
Jan 25 20:09:36 aes-Inspiron-1545 avahi-daemon[836]: Withdrawing address record for fec0::b:223:aeff:fe2d:2431 on eth0.
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <info> Unmanaged Device found; state CONNECTED forced. (see http://bugs.launchpad.net/bugs/191889)
Jan 25 20:09:36 aes-Inspiron-1545 NetworkManager[3531]: <info> Unmanaged Device found; state CONNECTED forced. (see http://bugs.launchpad.net/bugs/191889)
Jan 25 20:09:36 aes-Inspiron-1545 pppd[3539]: Terminating on signal 15
Jan 25 20:09:36 aes-Inspiron-1545 pppd[3539]: Exit.
Jan 25 20:09:36 aes-Inspiron-1545 dbus[802]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Jan 25 20:11:56 aes-Inspiron-1545 modem-manager[3529]: <info> Caught signal 15, shutting down...
Jan 25 20:11:56 aes-Inspiron-1545 NetworkManager[3531]: <info> caught signal 15, shutting down normally.
Jan 25 20:11:56 aes-Inspiron-1545 NetworkManager[3531]: <warn> quit request received, terminating...
Jan 25 20:11:56 aes-Inspiron-1545 NetworkManager[3531]: <info> (eth1): now unmanaged
Jan 25 20:11:56 aes-Inspiron-1545 NetworkManager[3531]: <info> (eth1): device state change: unavailable -> unmanaged (reason 'removed') [20 10 36]
Jan 25 20:11:56 aes-Inspiron-1545 NetworkManager[3531]: <info> Unmanaged Device found; state CONNECTED forced. (see http://bugs.launchpad.net/bugs/191889)
Jan 25 20:11:56 aes-Inspiron-1545 NetworkManager[3531]: <info> exiting (success)
Jan 25 20:11:56 aes-Inspiron-1545 modem-manager[6945]: <info> ModemManager (version 0.5) starting...
Jan 25 20:11:56 aes-Inspiron-1545 NetworkManager[6947]: <info> NetworkManager (version 0.9.1.90) is starting...
Jan 25 20:11:56 aes-Inspiron-1545 NetworkManager[6947]: <info> Read config file /etc/NetworkManager/NetworkManager.conf
Jan 25 20:11:56 aes-Inspiron-1545 kernel: [18167.470749] init: reconnect main process (6948) terminated with status 2
Jan 25 20:11:56 aes-Inspiron-1545 modem-manager[6945]: <info> Loaded plugin Nokia
Jan 25 20:11:56 aes-Inspiron-1545 modem-manager[6945]: <info> Loaded plugin Ericsson MBM
Jan 25 20:11:56 aes-Inspiron-1545 modem-manager[6945]: <info> Loaded plugin MotoC
nmcli con up id "DSL connection 1"
. Como não tenho DSL, preciso de sua ajuda com todos os comandos e saídas. Comente sua saída.nmcli -t -f TYPE,STATE dev
Respostas:
Aqui está um script Upstart que você pode colocar
/etc/init/reconnect.conf
:Ao perder um endereço IP para eth0 (configure para sua interface se for diferente), ele reiniciará o trabalho do gerenciador de rede e restaurará a conectividade.
fonte
reconnect.conf
para/etc/init
. A única coisa que você precisa mudar é eth0 para outra coisa, se não estiver correta.inet addr:
parte é apenas um filtro para grep e não deve ser tocado. O nome da conexão relevante pode ser verificado viaifconfig
. O Upstart lerá esse arquivo automaticamente e você deverá fazersudo start reconnect
o trabalho. Na próxima reinicialização, ele será iniciado automaticamente.ifconfig
começa com,etho
então eu usarei isso e depoissudo start reconnect
quando a conexão cair. Vou postar de volta com o resultado. Obrigado!/etc/init/reconnect.conf
e reiniciei. Quando minha conexão caiu algum tempo após a reinicialização, o nm não reiniciou. Então eu emitisudo start reconnect
.reconnect stop/waiting
foi a resposta, mas nm não foi reiniciado. Eu tinhasudo service network-manager restart
que é o que normalmente faço. Em vez derestart network-manager
, algo comorestart service network-manager
seria necessário? (BTW, eu colocar eth0 e não etho (ao contrário do que está lá no meu comentário anterior))service network-manager restart
. Apenas curioso, qual é o resultado dostatus network-manager
seu sistema? Se isso indicarstop/waiting
(ou ocorrer um erro) após a reinicialização, você precisará alterar o início para algo comostart on runlevel [2345]
e adicionarsleep 60
antes.Uma solução rápida e suja é escrever um script que seja executado
ping -i 5 google.com || service network-manager restart
como root (você pode escrever um /etc/init.d/-daemon para isso, mas como a solução é MUITO suja, eu não faria isso)Esse script reiniciaria o gerenciador de rede toda vez que o Google não for encontrado e verifica uma vez a cada quinto segundo.
fonte
Experimente o wicd, em vez do gerenciador de rede, foi recomendado para um caso semelhante: https://bbs.archlinux.org/viewtopic.php?id=124443
Não sei se isso resolverá o problema nem se o wicd suporta pppoe.
Faça backup dos arquivos .deb, apenas no caso de:
Limpe o gerenciador de rede e instale o wicd
Reinicie. Tente conectar usando o wicd.
Se algo der errado, limpe o wicd e reinstale o gerenciador de rede:
fonte
alias nm='echo "password" | sudo -S service network-manager restart'
como uma solução alternativa. Terceiro, de seus outros links úteis, parece que o problema não tem nada a ver com o Ubuntu, mas é "upstream" e, portanto, vou perguntar se essa pergunta deve ser encerrada.Eu criei um script para este problema:
Isso está funcionando bem, mas esse script está consumindo muito da minha CPU. Alguém pode me ajudar a diminuir o uso da CPU?
fonte
Por que estou respondendo a esta pergunta?
Existem respostas muito boas, mas tudo é escrito usando init ou upstart. A partir de agora estaremos usando o systemd, estou escrevendo um script e informações melhores. sobre como fazer isso.
Mas existe um caminho?
É, existe um caminho. Você só precisa criar um script que monitore o estado da sua rede e reinicie o Network Manager sob demanda. Criaremos esse script e um serviço systemd que será iniciado com o sistema e monitorará o status da sua rede a cada 5 segundos para descobrir se você está online ou não.
O que devo fazer?
Primeiro de tudo, precisamos instalar a ferramenta fping para fazer um dos testes de conexão (o retorno de fping "está ativo" se uma conexão é possível e "endereço não encontrado", se não):
Agora vamos criar o script de monitor em nosso sistema. Crie um arquivo em / usr / local / bin / chamado nm-watcher:
E edite-o usando o nano ou o seu editor de texto preferido:
Copie e cole esse script dentro do editor, salve e feche o arquivo (se você estiver usando o nano, como neste tutorial, use "CTRL + X" "Y" e "ENTER" em sequência). Não se esqueça de alterar wlan0 para a interface que você deseja que o wm-watcher monitore:
Para executar este script, precisamos torná-lo executável:
Agora, criaremos o serviço SystemD, para isso, você deve criar e editar o arquivo nm-watcher.service em / etc / systemd / system /:
E coloque esse conteúdo dentro do arquivo:
Isso criará o arquivo de serviço que faz o SystemD chamar o script que criamos antes a cada inicialização, depois de estabelecermos uma conexão usando o network-manager.service.
Devemos saber ativar este serviço para executar usando:
E inicie o serviço digitando:
Para verificar se o serviço está em execução, digite:
Se você tiver algum problema com o serviço, poderá ver as mensagens de depuração usando:
Devo fazer outras coisas?
Não, é tudo o que é necessário para realizar esta tarefa. Esse script tem um impacto muito baixo no desempenho do sistema, como você pode ver nesta captura de tela:
fonte
No meu laptop mais antigo, eu tinha um cartão WiFi ruim, com tendência a desconectar-se do WiFi se houvesse muita carga (por exemplo, baixar arquivos grandes etc.).
Criei um script simples para verificar se minha internet ainda estava conectada e, se não estava, reinicie o gerenciador de rede.
Criei um cronjob raiz com
sudo crontab -e
e o defini de modo que, a cada minuto (você pode fazê-lo com menos frequência, mas o script é um ping simples, portanto, não requer muitos recursos), ele executaria o script.Portanto, se o meu WiFi sair por algum motivo, ele só sairá por cerca de um minuto de cada vez, no máximo. Se você não estiver familiarizado
cron
, recomendo a leitura destefonte