
Я хочу отладить скрипт, содержащий Networkmanager-dispacher-переменные, такие как DEVICE_IFACE, IP4_GATEWAY.Networkmanager-руководствоописывает эти переменные, но не упоминает, как их отлаживать.
Я много искал, но не могу понять, как получить значение этих переменных. Когда я вывожу команду echo в командной строке, например echo ${DEVICE_IFACE}, я не получаю никакого значения.
решение1
На NetworkManager
странице руководства, на которую вы ссылаетесь, указано:
Среда содержит больше информации об интерфейсе и соединении. Следующие переменные доступны для использования в скриптах диспетчера:
[...]
DEVICE_IFACE
Таким образом, эта среда, очевидно, настраивается диспетчером.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