Networkmanager-dispatcher-variables をデバッグする方法

Networkmanager-dispatcher-variables をデバッグする方法

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

関連情報