Plik /etc/udev/rules.d/70-persistent-net.rules
jest generowany automatycznie w systemie Linux z udev, jeśli nie istnieje, podczas ponownego uruchamiania. Chciałbym jednak wiedzieć, jak utworzyć ten plik reguł (z poleceniem) bez ponownego uruchamiania serwera.
Przeszukiwałem go przez jakiś czas i odkryłem, że plik reguł jest generowany przez ten skrypt:
/lib/udev/write_net_rules
Nie można jednak uruchomić tego skryptu z wiersza poleceń, ponieważ (zakładam) chce on zostać uruchomiony przez udev, a niektóre zmienne środowiskowe są ustawione poprawnie. Uruchomienie go ręcznie powoduje wyświetlenie komunikatu o błędzie „brak $ INTERFACE”. Nawet jeśli ustawię zmienną env INTERFACE = eth0 przed uruchomieniem skryptu, nadal wyświetla błąd „brak prawidłowego dopasowania”. Nie wspominając, że mam dwa interfejsy ( eth0
i eth1
) i chcę wygenerować plik reguł dla obu.
Myślałem również o wywołaniu takich zdarzeń udev, mając nadzieję, że uruchomi skrypt od samego udev, ale nic się nie zmienia:
udevadm trigger --type=devices --action=change
Czy ktoś wie, jak zregenerować trwałe reguły sieciowe w pliku /etc/udev/rules.d/70-persistent-net.rules
bez ponownego uruchamiania?
70-persistent-net.rules
ani /lib/udev/write_net_rules
scenariusza, ani scenariusza. Dlatego nie mogę sprawdzić, ale przypuszczalnie $INTERFACE
zmienna jest ustawiona w samym skrypcie. Najprawdopodobniej jest przekazywany jako argument. Czy możesz pokazać nam zawartość skryptu?
$INTERFACE
zmiennej. Po prostu używa się znacznie więcej zmiennych, nigdy nie deklarowanych. Jest tak, ponieważ jest wywoływany przez udev, a udev ustawia wszystkie zmienne env przed uruchomieniem skryptu podczas rozruchu.