Назад | Перейти на главную страницу

Можно ли что-то делать каждый раз, когда Linux подключается к сети?

Эй, я пытаюсь запустить скрипт каждый раз, когда NetworkManager (или что-то еще, но именно об этом я сейчас говорю) подключается к сети (или меняет сети).

Что мне действительно нужно, так это, образно говоря, каталог init, который запускает все внутри него всякий раз, когда мой интерфейс Wi-Fi меняет состояние / essid. Или уровень запуска «состояние сети изменено». Или что-то.

Вы не сказали, какой дистрибутив вы используете, но на производных от Debian (Ubuntu и т. Д.) Вы можете указать скрипты, которые будут вызываться в различных точках настройки / разборки интерфейса, в разделе конфигурации в /etc/network/interfaces. Вы можете указать скрипты, которые будут вызываться в каждой из этих точек:

  • предварительная подготовка
  • вверх
  • пост-ап
  • вниз
  • пред-вниз
  • пост-вниз

Вы также можете поместить скрипты в каталоги с именем /etc/network/if-<stage>.d.

Подробнее см. man 5 interfaces.

NetworkManager имеет каталог триггеров сценария, который называется /etc/NetworkManager/dispatcher.d/. Делать man NetworkManager чтобы увидеть, как его использовать.

Помимо приведенных выше предложений, вы также можете настроить сценарий Upstart, который запускался бы при событии, при котором возникает ваша сеть.