2016-11-23 77 views
0

我已經設置了一個簡單的init.d腳本「S3logrotate」,以便在關閉時運行。從命令行手動運行時,「S3logrotate」腳本可以正常工作,但腳本在關閉時無法正常工作。在init.d腳本運行之前Wifi斷開連接

該腳本將我的PC上的日誌上傳到Amazon S3存儲桶,並要求WiFi正常運行。

調試證明腳本實際運行但上載過程失敗。

我發現問題似乎是腳本似乎在wifi終止後運行。

這些是我用來在腳本中測試我的互聯網連接的塊。

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 

輸出此塊:

IPv4 is down 
The network is down 

有什麼辦法來設置的init.d腳本的優先級?如在,我可以讓我的腳本在網絡連接終止之前運行嗎?如果沒有,是否有任何替代init.d?

我使用的是Ubuntu 16.04,如果它有重要意義的話,可以用Windows 10啓動雙啓動。

感謝,

sganesan7

+0

這個Q不是針對StackOverflow定義的編程。它可能更適合於S.E.相關網站http://askubuntu.com或http://superuser.com。使用Q底部的'flag'鏈接並請主持人移動它。請不要在2個不同的網站上發佈相同的Q.在此處發佈更多Q​​值之前,請閱讀http://stackoverflow.com/help/how-to-ask http://stackoverflow.com/help/dont-ask和http://stackoverflow.com/help/mcve。祝你好運。 – shellter

+0

'/ etc/rc6.d'中的鏈接應該有一個數字前綴,比如'K01'。腳本按數字順序運行,所以應該給它一個比終止網絡連接的腳本更小的數字。 – Barmar

回答

0

你應該把你的紙條:

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

變化組和所有者根

chown root:root S3logrotate 

,它應該工作。如果您需要在

做到這一點對於單獨的接口處裏面的腳本

/etc/NetworkManager/dispatcher.d/ 

創建一個腳本,並將其命名爲(例如):

wlan0-down 

,應該工作了。