如何调试 Networkmanager-dispatcher-variables

如何调试 Networkmanager-dispatcher-variables

我想调试一个包含 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

相关内容