Некоторое время я искал и смотрел исходный код и различные сценарии в файловой системе Linux, но до сих пор не мог понять, что в конечном итоге инициирует чтение сценариев для сетевых интерфейсов (или других интерфейсов) в / и т.д. / sysconfig / сетевые сценарии / который анализирует и захватывает основные параметры, такие как IPADDR и назначает его интерфейсу.
В документация от Redhat, например, не очень конкретный:
Файлы конфигурации интерфейса управляют программными интерфейсами для отдельных сетевых устройств. Поскольку система сапоги Это использует эти файлы, чтобы определить, какие интерфейсы вызывать и как их настраивать. Эти файлы обычно называются ifcfg-, где означает имя устройства, которым управляет файл конфигурации.
Обычно говорят, что «система» читает файлы.
Я действительно думаю, что нашел одну из последних программ в цепочке вызовов, которая анализирует эти файлы и параметры в них: / и т. д. / sysconfig / сетевые сценарии / ifup (который затем вызывает другие сценарии ifup- * и выполняет различные команды с / sbin / ip двоичный и устанавливает значения в / система / класс / сеть /). Но что вызывает этот сценарий ifup (который является символической ссылкой на / sbin / ifup)? Я начал смотреть на udev, но зашел в тупик. я использовал https://livegrep.com/search/linux искать в коде ядра ссылки на эти файлы и там тоже ничего не найти.
Я в основном хотел бы видеть четкое объяснение цепочки вызовов, которые приводят к синтаксическому анализу сценариев / etc / sysconfig / network-scripts / ifcfg- *, начиная с момента загрузки.
Редактировать: Спасибо LinuxNinja за ответ ниже. После этого ответа я также нашел этот похожий пост на сайте Unix SE.
Сервисная сеть - это то, с чего вы хотите начать (/etc/init.d/network
)
Он устанавливает interfaces=$(ls ifcfg*)
Это также передается по конвейеру sed для выполнения других магических действий, но именно здесь ifcfg*
файлы идентифицированы.
Существует оператор for, который просматривает каждый из найденных файлов ifcfg с помощью переменной $ interfaces и оценивает каждый из них, вызывая ifup eth0 boot
, например.