Usando Ubuntu 11.10 (Unity 3D) y una conexión a Internet por cable (DSL) sin enrutador o módem.
Si me desconecto la conexión a Internet, puedo volver a conectar haciendo clic en el icono del gestor de la red y seleccionar una conexión desde el menú desplegable desde mis conexiones son visibles. No es necesario reiniciar el administrador de red.
Pero cada vez que la conexión a Internet cae por sí sola , abro una terminal y la uso, sudo service network-manager restart
ya que no veo ninguna conexión en el menú desplegable del administrador de red. Solo después del comando, el administrador de red se inicia y se conecta automáticamente.
¿Hay alguna configuración para que el administrador de red no tenga que reiniciarse cada vez que se corta la conexión (a diferencia de que la desconecte cuando no necesita reiniciar)?
En otras palabras, supongo que no quiero que el administrador de red se detenga mientras esté usando la computadora, independientemente de si mi conexión con el ISP se ha caído o no.
No es un gran problema abrir un terminal y escribir el comando y la contraseña, pero si hay una manera de garantizar que el administrador de red no se detenga, sería mejor.
Edición del 26 de enero de 2012: líneas de 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"
. No tengo DSL, así que necesito tu ayuda con todos los comandos y resultados. Comenta tu salida.nmcli -t -f TYPE,STATE dev
Respuestas:
Aquí hay un script de Upstart que puede colocar para
/etc/init/reconnect.conf
:Al perder una dirección IP para eth0 (configure su interfaz si es diferente), reiniciará el trabajo del administrador de red y restaurará la conectividad.
fuente
reconnect.conf
a/etc/init
. Lo único que necesita cambiar es eth0 a otra cosa si no es correcta.inet addr:
La parte es solo un filtro para grep y no debe tocarse. El nombre de conexión relevante se puede verificar a través deifconfig
. Upstart leerá este archivo automáticamente y debe hacerlosudo start reconnect
para comenzar el trabajo. En el próximo reinicio, se iniciará automáticamente.ifconfig
comienza con,etho
así que usaré eso y luegosudo start reconnect
cuando la conexión se caiga. Volveré a publicar con el resultado. ¡Gracias!/etc/init/reconnect.conf
y reiniciado. Cuando mi conexión cayó un poco después de reiniciar, nm no se reinició. Así que emitísudo start reconnect
.reconnect stop/waiting
fue la respuesta pero nm no se reinició. Teníasudo service network-manager restart
que hacer lo que hago normalmente. En lugar derestart network-manager
, ¿se requeriría algo asírestart service network-manager
? (Por cierto, puse eth0 y no etho (a diferencia de lo que hay en mi comentario anterior))service network-manager restart
. Por curiosidad, ¿cuál es el resultado destatus network-manager
su sistema? Si eso dicestop/waiting
(o da un error) después del reinicio, debe cambiar el inicio a algo asístart on runlevel [2345]
y agregarsleep 60
antes mientras.Una solución rápida y sucia es escribir un script que se ejecute
ping -i 5 google.com || service network-manager restart
como root (podría escribir un /etc/init.d/-daemon para eso, pero como la solución es MUY sucia, no haría eso)Ese script reiniciará el administrador de red cada vez que no se encuentre Google y se verificará una vez cada cinco segundos.
fuente
Pruebe wicd en lugar de network-manager, se ha recomendado para un caso similar: https://bbs.archlinux.org/viewtopic.php?id=124443
No sé si solucionará el problema ni si wicd admite pppoe.
Copia de seguridad de los archivos .deb, por si acaso:
Purgue el administrador de red e instale wicd
Reiniciar. Intenta conectarte usando wicd.
Si algo sale mal, simplemente purgue wicd y reinstale el administrador de red:
fuente
alias nm='echo "password" | sudo -S service network-manager restart'
como solución alternativa. En tercer lugar, desde sus otros enlaces útiles, parece que el problema no tiene nada que ver con Ubuntu, sino que está "corriente arriba", por lo que voy a preguntar si esta pregunta debería cerrarse.He hecho un script para este problema:
Esto funciona bien, pero este script está tomando demasiado de mi CPU. ¿Alguien puede ayudarme a reducir el uso de la CPU?
fuente
¿Por qué estoy respondiendo esta pregunta?
Hay muy buenas respuestas, pero todo está escrito usando init o upstart. A partir de ahora usaremos systemd, estoy escribiendo un mejor script e información. sobre cómo hacer eso.
¿Pero hay alguna manera?
Es decir, hay un camino. Solo necesita crear un script que monitoree el estado de su red y reinicie Network Manager a pedido. Construiremos este script y un servicio systemd que se iniciará con el sistema y supervisará el estado de su red cada 5 segundos para determinar si está conectado o no.
¿Qué tengo que hacer?
En primer lugar, necesitamos instalar la herramienta fping para realizar una de las pruebas de conexión (fping return "está vivo" si es posible una conexión y "dirección no encontrada" si no):
Ahora crearemos el script de monitor en nuestro sistema. Cree un archivo en / usr / local / bin / llamado nm-watcher:
Y edítelo usando nano o su editor de texto preferido:
Copie y pegue este script dentro del editor, guarde y cierre el archivo (si está usando nano, como en este tutorial, use "CTRL + X", "Y" y "ENTER" en secuencia). No olvide cambiar wlan0 a la interfaz que desea que wm-watcher monitoree:
Para ejecutar este script, debemos hacerlo ejecutable:
Ahora, crearemos el servicio SystemD, para esto, debe crear y editar el archivo nm-watcher.service en / etc / systemd / system /:
Y ponga este contenido dentro del archivo:
Esto creará el archivo de servicio que hará que SystemD llame al script que hemos creado antes en cada arranque, después de haber establecido una conexión usando network-manager.service.
Deberíamos saber habilitar este servicio para que se ejecute usando:
Y comience el servicio escribiendo:
Para verificar si el servicio se está ejecutando, escriba:
Si tiene algún problema con el servicio, puede ver los mensajes de depuración utilizando:
¿Debo hacer alguna otra cosa?
No, esto es todo lo que se necesita para lograr esta tarea. Este script tiene un impacto muy bajo en el rendimiento del sistema, como puede ver en esta captura de pantalla:
fuente
En mi computadora portátil anterior tenía una tarjeta WiFi defectuosa que tenía tendencia a desconectarse de WiFi si había mucha carga (por ejemplo, descargar archivos grandes, etc.).
Creé un script simple para verificar si mi Internet todavía estaba conectado, y si no lo estaba, reinicie el administrador de red.
Creé un cronjob raíz con
sudo crontab -e
y lo configuré de modo que cada minuto (puede hacerlo con menos frecuencia, pero el script es un simple ping, por lo que no requiere muchos recursos) ejecutaría el script.Entonces, si mi WiFi se apagó por alguna razón, solo estaría fuera por aproximadamente un minuto a la vez, como máximo. Si no está familiarizado
cron
, le recomiendo leer estofuente