Utiliser Ubuntu 11.10 (Unity 3D) et une connexion Internet par câble (DSL) sans routeur ni modem.
Si I déconnectez ma connexion Internet, je peux simplement me reconnecter en cliquant sur l'icône du gestionnaire de réseau et en sélectionnant une connexion. le menu déroulant puisque mes connexions sont visibles. Il n'est pas nécessaire de redémarrer le gestionnaire de réseau.
Mais chaque fois que la connexion Internet tombe par elle-même , j'ai ouvert un terminal et j'utilise Sudo service network-manager restart
car je ne vois aucune connexion. dans le menu déroulant de gestionnaire de réseau. Ce n'est qu'après cette commande que Network Manager démarre et se connecte automatiquement.
Existe-t-il un paramètre qui empêche le gestionnaire de réseau de devoir être redémarré chaque fois que la connexion est interrompue (par opposition à ma déconnexion lorsque le redémarrage n’est pas nécessaire)?
En d'autres termes, je suppose que je ne veux pas que le gestionnaire de réseau cesse de fonctionner tant que j'utilise l'ordinateur, que ma connexion au fournisseur de services Internet ait été interrompue ou non.
Ce n’est pas très grave d’ouvrir un terminal et de saisir la commande et le mot de passe, mais s’il existe un moyen de s’assurer que le gestionnaire de réseau ne s’arrête pas, ce serait mieux.
édition datée du 26 janvier 2012: lignes 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
Voici un script Upstart que vous pouvez placer dans /etc/init/reconnect.conf
:
start on started network-manager
stop on runlevel [016]
script
while true; do
if ifconfig eth0 | grep -q "inet addr:"; then
# echo "all ok!"
else
restart network-manager
fi
sleep 5
done
end script
En cas de perte d'une adresse ip pour eth0 (configurez votre interface si elle est différente), il redémarre le travail du gestionnaire de réseau et restaure la connectivité.
Essayez wicd au lieu de network-manager, il a été recommandé pour un cas similaire: https://bbs.archlinux.org/viewtopic.php?id=12444
Je ne sais pas si cela résoudra le problème ni si wicd prend en charge pppoe.
Sauvegardez les fichiers .deb, juste au cas où:
Sudo apt-get download network-manager network-manager-gnome
Purger le gestionnaire de réseau et installer wicd
Sudo apt-get purge network-manager network-manager-gnome
Sudo apt-get install wicd wicd-gtk
Redémarrez. Essayez de vous connecter en utilisant wicd.
En cas de problème, supprimez simplement wicd et réinstallez le gestionnaire de réseau:
Sudo apt-get purge wicd wicd-gtk
Sudo dpkg -i network-manager*.deb
Une solution rapide et sale consiste à écrire un script qui exécute ping -i 5 google.com || service network-manager restart
en tant que root (vous pouvez écrire un fichier /etc/init.d/-daemon pour cela, mais comme la solution est TRES sale, je ne le ferais pas)
Ce script redémarre le gestionnaire de réseau chaque fois que Google n’est pas trouvé et le contrôle toutes les cinq secondes.
Pourquoi je réponds à cette question?
Il y a de très bonnes réponses, mais tout est écrit en utilisant init ou upstart. A partir de maintenant, nous utiliserons systemd, j'écris un meilleur script et des informations. sur la façon de le faire.
Mais y a-t-il un moyen?
Est, il y a un moyen. Il vous suffit de créer un script qui surveille l'état de votre réseau et de redémarrer Network Manager à la demande. Nous allons créer ce script et un service systemd qui sera démarré avec le système et surveillerons l’état de votre réseau toutes les 5 secondes pour déterminer si vous êtes en ligne ou non.
Que dois-je faire?
Tout d’abord, nous devons installer l’outil fping qui effectue l’un des tests de connexion (fping return "est actif" si une connexion est possible et "adresse introuvable" sinon):
$ Sudo apt-get install fping -y
Nous allons maintenant créer le script de contrôle sur notre système. Créez un fichier dans/usr/local/bin/appelé nm-watcher:
$ Sudo touch /usr/local/bin/nm-watcher
Et éditez-le en utilisant nano ou votre éditeur de texte préféré:
$ Sudo nano /usr/local/bin/nm-watcher
Copiez et collez ce script dans l'éditeur, enregistrez et fermez le fichier (si vous utilisez nano, comme dans ce tutoriel, utilisez "CTRL + X" "Y" et "ENTRÉE" dans l'ordre). N'oubliez pas de changer wlan0 pour l'interface que vous voulez que wm-watcher surveille:
#!/bin/bash
while true; do #create a infinite loop to keep looking at your connection
NET=$(ifconfig wlan0 | grep "inet inet addr:") # verify if the interface has an assigned IP
ROUTE=$(fping google.com 2>&1 | grep "alive") # try to ping google.com and verify if we have any response
WEB=$(wget --tries=10 --timeout=20 --spider http://google.com 2>&1 | grep "OK") # spiders google.com to verify if the page exists. returns error if a connections is not possible
if [ ! "$NET" != "" ] || [ ! "$ROUTE" != "" ] || [ ! "$WEB" != "" ]; then # verify if any of the above conditions aren't OK
service network-manager restart
fi
sleep 5
done
Pour exécuter ce script, nous devons le rendre exécutable:
$ Sudo chmod 755 /usr/local/bin/nm-watcher
Nous allons maintenant créer le service SystemD. Pour cela, vous devez créer et éditer le fichier nm-watcher.service dans/etc/systemd/system /:
$ Sudo touch /etc/systemd/system/nm-watcher.service && Sudo nano /etc/systemd/system/nm-watcher.service
Et mettez ce contenu dans le fichier:
[Unit]
Description=NetworkManager Watcher
Wants=NetworkManager.service
Before=NetworkManager.service
[Service]
ExecStart=/usr/local/bin/nm-watcher
[Install]
WantedBy=multi-user.target
Cela créera le fichier de service qui demandera à SystemD d'appeler le script que nous avons créé à chaque démarrage, après avoir établi une connexion à l'aide de network-manager.service.
Nous devrions savoir permettre à ce service de fonctionner en utilisant:
$ Sudo systemctl enable nm-watcher.service
Et démarrez le service en tapant:
$ Sudo service nm-watcher start
Pour vérifier si le service est en cours d'exécution, tapez:
$ Sudo service nm-watcher status
Si vous rencontrez des problèmes avec le service, vous pouvez voir les messages de débogage en utilisant:
$ Sudo journalctl -u nm-watcher
Dois-je faire autre chose?
Non, c’est tout ce qui est nécessaire pour accomplir cette tâche. Ce script a un impact très faible sur les performances du système, comme vous pouvez le voir sur cette capture d'écran:
Sur mon ancien ordinateur portable, j'avais une mauvaise carte WiFi qui avait tendance à se déconnecter du WiFi en cas de charge importante (téléchargement de fichiers volumineux, etc.).
J'ai créé un script simple pour vérifier si mon Internet était toujours connecté, et si ce n'était pas le cas, redémarrez le gestionnaire de réseau.
#!/bin/bash
ping -c 1 8.8.8.8
received=$?
echo $received
if [[ $received -ne 0 ]] ; then
service network-manager restart
fi
J'ai créé un cronjob racine avec Sudo crontab -e
et je l'ai défini de telle sorte que toutes les minutes (vous pouvez le faire plus fréquemment, mais le script est un ping simple, il ne nécessite pas beaucoup de ressources), il l'exécute.
Donc, si mon WiFi était éteint pour une raison quelconque, il ne le serait que pendant environ une minute à la fois, au maximum. Si vous n'êtes pas familier avec cron
, je vous recommande de lire this
J'ai fait un script pour ce problème:
#!/bin/bash
for(( ; ; ))
do
VALUE=$(ifconfig | grep ppp0| awk '{print $1}')
if [ "$VALUE" != "ppp0" ]; then
{ eval restart network-manager
eval sleep 5
}
fi
done
Cela fonctionne bien, mais ce script prend trop de mon processeur. Quelqu'un peut-il m'aider à réduire l'utilisation du processeur?