2016-11-23 8 views
0

Ich habe ein einfaches init.d-Skript "S3Logrotate" eingerichtet, das beim Herunterfahren ausgeführt wird. Das "S3logrotate" -Skript funktioniert gut, wenn es manuell über die Befehlszeile ausgeführt wird, aber das Skript funktioniert beim Herunterfahren nicht ordnungsgemäß.Wifi getrennt, bevor das Skript init.d ausgeführt wird

Das Skript lädt Protokolle von meinem PC in einen Amazon S3-Bucket hoch und erfordert, dass WLAN korrekt ausgeführt wird.

Debugging hat bewiesen, dass das Skript tatsächlich ausgeführt wird, aber der Upload-Prozess fehlschlägt.

Ich habe festgestellt, dass das Problem scheint, dass das Skript zu laufen scheint, nachdem WiFi beendet wurde.

Dies sind die Blöcke, die ich verwendet habe, um meine Internetverbindung im Skript zu testen.

if ping -q -c 1 -W 1 8.8.8.8 >/dev/null; then 
    echo "IPv4 is up" >> *x.txt* 
else 
    echo "IPv4 is down" >> *x.txt* 
fi 

if ping -q -c 1 -W 1 google.com >/dev/null; then 
    echo "The network is up" >> *x.txt* 
else 
    echo "The network is down" >> *x.txt* 
fi 

Die Ausgabe für diesen Block ist:

IPv4 is down 
The network is down 

Gibt es eine Möglichkeit die Priorität eines init.d Skript zu setzen? Wie kann ich mein Skript ausführen lassen, bevor die Netzwerkverbindung beendet wird? Wenn nicht, gibt es eine Alternative zu init.d?

Ich benutze Ubuntu 16.04 und habe Dual-Boot mit Windows 10, wenn das signifikant ist.

Danke,

sganesan7

+0

In diesem Q geht es nicht um die Programmierung für StackOverflow. Es ** kann ** am S.E. angemessener sein. verwandte Seiten http://askubuntu.com ODER http://superuser.com. Benutze den 'flag'-Link unten in deinem Q und bitte den Moderator, ihn zu verschieben. Bitte poste nicht das gleiche Q auf 2 verschiedenen Seiten. Bitte lesen Sie http://stackoverflow.com/help/how-to-ask http://stackoverflow.com/help/dont-ask und http://stackoverflow.com/help/mcve, bevor Sie weitere Qs hier veröffentlichen. Viel Glück. – shellter

+0

Der Link in '/ etc/rc6.d' sollte ein numerisches Präfix wie' K01' haben. Die Skripts werden in numerischer Reihenfolge ausgeführt. Sie sollten daher eine niedrigere Nummer angeben als das Skript, das die Netzwerkverbindung beendet. – Barmar

Antwort

0

Sie sollten Sie legen Scrip in:

/etc/NetworkManager/dispatcher.d/pre-down.d 

ändern Gruppe und Inhaber

chown root:root S3logrotate 

und es sollte funktionieren zu verankern. Wenn Sie dies für eine separate Schnittstelle Platz Skript tun müssen, um in

ein Skript innerhalb

/etc/NetworkManager/dispatcher.d/ 

und nennen Sie es (zum Beispiel):

wlan0-down 

und sollte auch funktionieren.

Verwandte Themen