Используйте post-up
в / etc / network / interfaces
в любом дистрибутиве на основе Debian. Это позволяет запускать сценарий сразу после того, как он был запущен ifup
. Подробнее на странице руководства для интерфейсов
.
Примечание: post-down
, конечно, можно использовать для удаления правил.
И если это не сработает, поскольку ваша система вызывает ppp0 через какой-то скрипт, вы можете использовать скрипты ловушек в подпапках *. D
в / etc / network
соответствующие вышеупомянутым действиям. В сценарии вам будет предоставлено несколько переменных, таких как IFACE
, ADDRFAM
и т. Д. Страницы руководства действительно подробны.
С другой стороны, внутренне вверх
== пост-вверх
и вниз
== пост-вниз
, поэтому правильные подпапки будет if-down.d
и if-up.d
соответственно.
И если вы хотите «отладить» этот процесс вызова интерфейса, который объявлен в / etc / network / interfaces
(или исходный код
d оттуда), ifup (8)
содержит подробности. В частности, вам понадобится ifup -nvl
(и, возможно, имя интерфейса). Также может быть запущен без привилегий, потому что он ничего не делает, а просто имитирует процесс.
Это не будет работать в установках на основе Debian, но управляемых сетевым менеджером. Но если вы упомянули маршрутизатор, я думаю, что он вряд ли будет управляться Network Manager.
Та же проблема с KDE на Arch. Обходной путь, который я нашел, — отключить вывод на внешний монитор прямо перед повторным вызовом xrandr с желаемыми настройками масштабирования. По какой-то причине при этом я правильно получаю рабочий стол Plasma в полном размере -на внешнем мониторе.
Далее следует команда, которую я использую, вы, вероятно, можете настроить ее значениями, которые подходят для вашей настройки(DP-1
— это внешний монитор, eDP-1
монитор крышки ноутбука):
# This line turns off the external monitor
xrandr --output DP-1 --off
# This turns the external monitor back on, and gives settings for both monitors
xrandr --output eDP-1 --scale 1x1 \
--output DP-1 --auto --scale 2x2 --right-of eDP-1