
DEVICE_IFACE、IP4_GATEWAYなどのNetworkmanager-dispacher-variablesを含むスクリプトをデバッグしたい。ネットワークマネージャマニュアルこれらの変数については説明していますが、デバッグ方法については触れていません。
いろいろ調べてみましたが、これらの変数の値を取得する方法がわかりません。コマンド ラインで echo ${DEVICE_IFACE} のように echo しても、値は取得されません。
答え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 を再起動すると、 に「interface wlan0」のようなものが表示されます/tmp/myscript.log
。
答え2
ディスパッチャ スクリプトの出力は systemd によってログに記録されます。 を使用して表示できますsudo journalctl -u NetworkManager-dispatcher
。変数をエコーしてからログを確認します。
同様の質問に対する同様の回答は、https://serverfault.com/a/1056299/310447