J'ai un ordinateur sous Ubuntu Gnome 16.04. Au redémarrage, parfois (au hasard) la carte réseau disparaît. C’est-à-dire eth0disparaît de ifconfig, lspcietc. Je ne peux pas ramener eth0sans redémarrage dans de telles situations. Naturellement, la machine n'est pas connectée à Internet lorsque cela se produit. De plus, en général, un simple redémarrage corrige le problème et l’éthernet s’affiche à nouveau.
Je ne sais pas comment commencer à déboguer cela. Cependant, j'aimerais avoir un script ou un service qui vérifie si l'Ethernet a été chargé (l'ordinateur est connecté à Internet) et qui redémarre sinon. Ce script ou service doit être exécuté avant la connexion de tout utilisateur, car parfois je redémarre la machine à distance et je perds son accès si Ethernet ne s'affiche pas.
J'ai un script qui vérifie si Internet est connecté. Mais je n'ai pas réussi à le faire fonctionner au bon moment. J'ai essayé d'utiliser crontab, mais cronsemble être initialisé avant la connexion Internet, (comme les enregistrements du fichier journal); J'ai essayé de placer un script upstart /etc/init/, mais je me suis rendu compte qu'Ubuntu utilise maintenant systemdet que upstart n'est plus recommandé. J'ai également écrit un systemdfichier d'unité et mes résultats sont mitigés (bootloop et rien). Qu'est-ce que je fais mal?
Script de test de connectivité Internet
#!/bin/bash
ping -c 1 8.8.8.8 > /dev/null
if [ $? -eq 0 ]; then
echo "ok"
else
reboot
fi
systemd fichier unité qui a provoqué bootloop
[Unit]
Description=Tests Internet connectivity. Reboots if not connected.
After=network.target syslog.target
[Service]
Type=forking
ExecStart=/usr/local/bin/internet_test.sh
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=InternetTest
[Install]
WantedBy=multi-user.target
systemd fichier d'unité qui n'a rien fait (même le service ne s'est pas enregistré au démarrage)
[Unit]
Description=Tests Internet connectivity. Reboots if not connected.
After=multi-user.target
[Service]
Type=forking
ExecStart=/usr/local/bin/internet_test.sh
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=InternetTest