
我想調試一個包含 Networkmanager-dispacher-variables(如 DEVICE_IFACE、IP4_GATEWAY)的腳本。這網路管理器手冊描述了這些變量,但沒有提及如何調試它們。
我搜索了很多,但我無法弄清楚如何獲取這些變數的值。當我在命令列上回顯時(例如 echo ${DEVICE_IFACE}),我沒有得到任何值。
答案1
在NetworkManager
您參考的手冊頁中,有說明:
環境包含有關介面和連接的更多資訊。以下變數可在調度程序腳本中使用:
[...]
DEVICE_IFACE
所以這個環境顯然是由dispatcher.d設定的,並且只能由從那裡啟動的腳本存取。
例如,您可以將此行放入下列文件中/etc/NetworkManager/dispatcher.d
:
echo "interface $DEVICE_IFACE" > /tmp/myscript.log
仍然參考 的手冊頁NetworkManager
,您需要使其由 root 擁有、可執行,並且不可被群組或其他人寫入,例如:
# chown root:root /etc/NetworkManager/dispatcher.d/myscript
# chmod a+x /etc/NetworkManager/dispatcher.d/myscript
# chmod go-w /etc/NetworkManager/dispatcher.d/myscript
然後,重新啟動 NetworkManager,您應該在 .txt 檔案中讀取類似「interface wlan0」的內容/tmp/myscript.log
。
答案2
調度程序腳本的輸出由 systemd 記錄;您可以使用 來查看它sudo journalctl -u NetworkManager-dispatcher
。所以只需回顯變量,然後查看日誌即可。
類似問題的類似答案可以在以下位置找到https://serverfault.com/a/1056299/310447