UDEV(7) udev UDEV(7) NAZWA udev - dynamiczne zarzadzanie urzadzeniami OPIS udev udostepnia oprogramowaniu systemowemu zdarzenia urzadzen, zarzadza uprawnieniami wezlow urzadzen i moze tworzyc dodatkowe dowiazania symboliczne w katalogu /dev/ lub zmieniac nazwy interfejsow sieciowych. Jadro zwykle nadaje nieprzewidywalne nazwy urzadzen w kolejnosci ich wykrycia. Znaczace dowiazania symboliczne lub nazwy urzadzen sieciowych zapewniaja staly sposob identyfikacji urzadzen na podstawie ich wlasciwosci lub aktualnej konfiguracji. Demon udev, systemd-udevd.service(8), otrzymuje zdarzenia urzadzen (uevent) bezposrednio z jadra, gdy tylko z systemu dodawane lub usuwane jest urzadzenie, albo zmianie ulega jego status. Gdy udev otrzyma zdarzenie urzadzenia, dopasowuje swoj skonfigurowany zestaw regul do roznych atrybutow urzadzenia, aby go zidentyfikowac. Reguly moga zapewniac dodatkowe informacje o urzadzeniu, sluzace do przechowania w bazie danych udev lub do tworzenia znaczacych nazw dowiazan symbolicznych. Wszelkie przetwarzane przez udev informacje o urzadzeniach sa przechowywane w bazie danych udev i wysylane do potencjalnych subskrybentow zdarzen. Dostep do wszelkich przechowywanych danych i zrodel zdarzen zapewnia biblioteka libudev. PLIKI REGUL Reguly udev sa odczytywane z plikow polozonych w systemowych katalogach regul /usr/lib/udev/rules.d i /usr/local/lib/udev/rules.d, ulotnych katalogow uruchomieniowych /run/udev/rules.d oraz lokalnego katalogu administracyjnego /etc/udev/rules.d. Wszystkie pliki regul sa sortowane i przetwarzane w kolejnosci leksykograficznej, bez wzgledu na katalog, z ktorego pochodza. Jednak pliki o identycznych nazwach zastepuja sie. Pliki z /etc/ maja najwyzszy priorytet, pliki w /run/ maja pierwszenstwo nad plikami o tej samej nazwie w /usr/. Mozna w ten sposob przeslonic dostarczane przez system pliki regul plikiem lokalnym, jesli bedzie taka potrzeba; dowiazanie symboliczne w /etc/ o tej samej nazwie jak plik regul w /usr/lib/, wskazujace na /dev/null, zupelnie wylaczy dany plik regul. Pliki regul musza konczyc sie rozszerzeniem .rules; inne rozszerzenia sa ignorowane. Kazdy wiersz w pliku regul zawiera co najmniej jedna pare klucz-wartosc. Wyjatkiem sa puste wiersze i wiersze zaczynajace sie od znaku ,,#", ktore sa ignorowane. Wystepuja dwa typy kluczy: dopasowujace i przypisujace. Jesli wszystkie klucze dopasowujace pasuja do swych wartosci, regula jest stosowana, a klucze przypisujace przypisuja dane wartosci. Regula dopasowujaca moze zmienic nazwe interfejsu sieciowego, dodac dowiazanie symboliczne wskazujace na wezel urzadzenia lub uruchomic podany program, w ramach obslugi zdarzenia. Regula sklada sie z listy jednego lub wiecej wyrazen klucz-operator-wartosc, rozdzielonych przecinkiem. Kazde wyrazenie daje rozny efekt, w zaleznosci od uzytego klucza i operatora. Operatory "==" Sprawdza rownosc (podany klucz ma okreslona wartosc). "!=" Sprawdza nierownosc (podany klucz nie ma okreslonej wartosci lub podany klucz jest nieobecny). "=" Przypisuje wartosc do klucza. Klucze reprezentujace liste sa resetowane i przypisywana jest tylko ta pojedyncza wartosc. "+=" Dodaje wartosc do klucza utrzymujacego liste wpisow. "-=" Usuwa wartosc z klucza utrzymujacego liste wpisow. Dodane w wersji 217. ":=" Nieodwolanie przypisuje wartosc do klucza; pozniejsze zmiany beda niemozliwe. Dodane w wersji 247. Wartosci Wartosci sa zapisywane jako lancuchy ograniczone cudzyslowami ("lancuch"). Aby w wartosci umiescic cudzyslow (") nalezy go poprzedzic odwrotnym ukosnikiem (\"). Wszystkie inne wystapienia ukosnikow, po ktorych nastepuja dowolne znaki, nie stanowia sekwencji specjalnych. Oznacza to, ze "\t\n" jest traktowane jako cztery znaki: odwrotny ukosnik, male t, odwrotny ukosnik, male n. Lancuch mozna poprzedzic mala litera e (e"lancuch\n"), aby oznaczyc go jako korzystajacy z sekwencji jezyka C, zob. Sekwencje specjalne w jezyku C[1]. Na przyklad e"lancuch\n" jest przetwarzany jako 8 znakow: 7 malych liter i znak nowego wiersza. Mozna w ten sposob zapisac znaki specjalne tam, gdzie wymaga ich sterownik jadra. Lancuch mozna poprzedzic mala litera i (i"lancuch"), aby oznaczyc go jako lancuch lub wzorzec, ktory ma byc dopasowany bez wzgledu na wielkosc znakow. Na przyklad i"foo" dopasuje "foo", "FOO", "FoO" itd. Przedrostek mozna stosowac tylko do regul sprawdzajacych rownosc(,,==") lub nierownosc (,,!="), np. ATTR{foo}==i"abcd". Prosze zauwazyc, ze w zadnym wariancie lancucha, znak NUL nie jest dozwolony. Klucze Do dopasowania wlasciwosci urzadzenia mozna posluzyc sie nastepujacymi kluczami. Niektore dopasuja rowniez wlasciwosci urzadzenia nadrzednego w sysfs, a nie tylko urzadzenia, ktore wygenerowalo zdarzenie. Jesli w pojedynczej regule poda sie wiele kluczy, ktore dopasuja urzadzenie nadrzedne, wszystkie te klucze musza dopasowac jedno i to samo urzadzenie nadrzedne. ACTION Dopasowuje nazwe akcji ze zdarzenia. DEVPATH Dopasowuje sciezke (devpath) urzadzenia ze zdarzenia. KERNEL Dopasowuje nazwe urzadzenia ze zdarzenia. KERNELS Wyszukuje sciezke (devpath) w gore, aby dopasowac nazwe urzadzenia. NAME Dopasowuje nazwe interfejsu sieciowego. Mozna go stosowac po ustawieniu klucza NAME w jednej z wczesniejszych regul. SYMLINK Dopasowuje nazwe dowiazania symbolicznego wskazujacego na wezel. Mozna go stosowac po ustawieniu klucza SYMLINK w jednej z wczesniejszych regul. Moze wystepowac wiele dowiazan; wystarczy dopasowanie jednego. Jesli operatorem jest ,,!=", token zwraca prawde tylko, jesli zadne dowiazanie nie bedzie dopasowane. SUBSYSTEM Dopasowuje podsystem urzadzenia ze zdarzenia. SUBSYSTEMS Wyszukuje sciezke (devpath) w gore, aby dopasowac nazwe podsystemu urzadzenia. DRIVER Dopasowuje nazwe sterownika urzadzenia ze zdarzenia. Klucz ten nalezy ustawiac tylko w przypadku urzadzen, ktore sa przypisane do sterownika w momencie wygenerowania zdarzenia. DRIVERS Wyszukuje sciezke (devpath) w gore, aby dopasowac nazwe sterownika urzadzenia. ATTR{nazwa-pliku} Dopasowuje wartosc atrybutu sysfs urzadzenia ze zdarzenia. Koncowe odstepy w wartosciach atrybutu sa ignorowane, chyba ze podana wartosc dopasowania sama zawiera koncowe odstepy. ATTRS{nazwa-pliku} Wyszukuje sciezke (devpath) w gore, aby dopasowac wartosci atrybutu sysfs. Jesli poda sie wiele dopasowan ATTRS, wszystkie z nich musza byc dopasowane do tego samego urzadzenia. Koncowe odstepy w wartosciach atrybutu sa ignorowane, chyba ze podana wartosc dopasowania sama zawiera koncowe odstepy. SYSCTL{parametr jadra} Dopasowuje wartosc parametru jadra. Dodane w wersji 240. ENV{klucz} Dopasowuje wobec wartosci wlasciwosci urzadzenia. CONST{klucz} Dopasowuje wobec stalej systemowej. Obslugiwane sa nastepujace klucze: "arch" Architektura systemowa. Opis ConditionArchitecture= w podreczniku systemd.unit(5) zawiera mozliwe wartosci. Dodane w wersji 244. "virt" Systemowe srodowisko wirtualizacji. Mozliwe wartosci opisano w podreczniku systemd-detect-virt(1). Dodane w wersji 244. "cvm" Systemowa technologia zabezpieczonej wirtualizacji (ang. confidential virtualization technology). Mozliwe wartosci opisano w podreczniku systemd-detect-virt(1). Dodane w wersji 254. Nieznane klucze nie beda dopasowane. Dodane w wersji 244. TAG Dopasowuje wobec jednego ze znacznikow urzadzenia. Mozna go stosowac po ustawieniu klucza TAG w jednej z wczesniejszych regul. Moze wystepowac wiele znacznikow; wystarczy dopasowanie jednego. Jesli operatorem jest ,,!=", token zwraca prawde tylko, jesli zaden znacznik nie bedzie dopasowany. TAGS Wyszukuje sciezke (devpath) w gore, aby dopasowac urzadzenie z odpowiednim znacznikiem. Jesli operatorem jest ,,!=", token zwraca prawde tylko, jesli zaden znacznik nie bedzie dopasowany. TEST{osemkowa maska trybu} Sprawdza istnienie pliku. Jesli to potrzebne, mozna podac osemkowa maske pliku. PROGRAM Wykonuje program, aby okreslic czy istnieje dopasowanie; klucz jest prawdziwy, jesli program powrocil z sukcesem. Wlasciwosci urzadzenia sa udostepniane wykonywanemu programowi w srodowisku. Standardowe wyjscie programu jest dostepne w kluczu RESULT. Mozna w ten sposob korzystac tylko z bardzo szybko wykonywanych zadan pierwszego planu. Wiecej szczegolow w opisie RUN. Prosze zauwazyc, ze w jednej regule mozna podac wiele kluczy PROGRAM, a ,,=", ,,:=" i ,,+=" maja takie samo znaczenie jak ,,==". RESULT Dopasowuje zwrocony lancuch ostatniego wywolania PROGRAM. Klucz ten mozna zastosowac w tej samej lub pozniejszej regule, po wywolaniu PROGRAM. Wiekszosc wzorcow obsluguje dopasowanie wzorcami wieloznacznikowymi powloki (glob) oraz wzorce alternatywne. Obslugiwane sa nastepujace znaki specjalne: "*" Dopasowuje jeden lub wiecej znakow. "?" Dopasowuje dowolny pojedynczy znak. "[]" Dopasowuje dowolny pojedynczy znak podany w nawiasach kwadratowych. Na przyklad wzorzec "tty[SR]" dopasuje "ttyS" lub "ttyR". Za pomoca znaku ,,-" obslugiwane sa rowniez przedzialy. Na przyklad, aby dopasowac przedzial wszystkich cyfr, mozna uzyc wzorca "[0-9]". Jesli pierwszym znakiem za ,,[" bedzie ,,!", to dopasowane zostana wszystkie znaki poza tymi, podanymi w nawiasach kwadratowych. "|" Rozdziela wzorce alternatywne. Na przyklad wzorzec "abc|x*" dopasuje "abc" lub "x*". Dodane w wersji 217. Mozna przypisac nastepujace wartosci kluczy: NAME Nazwa do uzycia przez interfejs sieciowy. W podreczniku systemd.link(5) opisano mechanizm wyzszego poziomu do ustawiania nazw interfejsow. Nazwa wezla urzadzenia nie moze byc zmienione przez udev, mozna tworzyc jedynie dodatkowe dowiazania symboliczne. SYMLINK Nazwa dowiazania symbolicznego wskazujacego na wezel. Kazda pasujaca regula dodaje te wartosc do listy dowiazan symbolicznych do utworzenia. Zestaw znakow jakie moga posluzyc do nazwania dowiazania symbolicznego jest ograniczony. Dozwolone znaki to ,,0-9A-Za-z#+-.:=@_/", prawidlowe sekwencje znaku UTF-8 oraz kodowanie szesnastkowe ,,\x00". Wszystkie pozostale znaki sa zastepowane znakiem ,,_". Mozna utworzyc wiele dowiazan symbolicznych, rozdzielajac nazwy spacja. W przypadku, gdy wiele urzadzen rosci sobie prawo do tej samej nazwy, dowiazanie zawsze wskazuje na urzadzen o najwyzszym link_priority. Jesli biezace urzadzenie zniknie, dowiazania sa rozwiazywane ponownie i urzadzenie z nastepnym najwyzszym link_priority staje sie wlascicielem dowiazania. Jesli nie poda sie link_priority, kolejnosc urzadzen (oraz to, ktore z nich pozyska dowiazanie) jest niezdefiniowana. Nazwy dowiazan nigdy nie moga byc w konflikcie z domyslnymi nazwami wezlow urzadzen jadra, poniewaz to doprowadziloby to nieprzewidywalnego zachowania. OWNER, GROUP, MODE Uprawnienia wezla urzadzenia. Kazda podana wartosc przeslania wkompilowana wartosc domyslna. SECLABEL{modul} Stosuje podana etykiete Linux Security Module do wezla urzadzenia. Dodane w wersji 209. ATTR{klucz} Wartosc powinna byc zapisana do atrybutu sysfs urzadzenia ze zdarzenia. SYSCTL{parametr jadra} Wartosc, jaka powinna byc zapisana do parametru jadra. Dodane w wersji 220. ENV{klucz} Ustawia wartosc wlasciwosci urzadzenia. Nazwy wlasciwosci zaczynajace sie od ,,." nie sa przechowywane w bazie danych ani nie sa eksportowane do zdarzen lub narzedzi zewnetrznych (uruchomionych na przyklad przez pasujacy klucz PROGRAM). TAG Dodaje znacznik do urzadzenia. Sluzy do filtrowania zdarzen dla uzytkownikow korzystajacych z funkcji monitorowania libudev lub do wyliczenia grupy urzadzen ze znacznikami. Implementacja moze dzialac wydajnie tylko, jesli do urzadzenia dodano niewiele znacznikow. Ma to byc uzywane tylko w kontekscie koniecznego filtrowania konkretnego urzadzenia, a nie jako opcja do ogolnego zastosowania. Zbyt szerokie stosowanie moze doprowadzic do nieefektywnej obslugi zdarzen. RUN{typ} Okresla program, jaki bedzie wykonany po przetworzeniu wszystkich regul dla zdarzenia. Przy ,,+=", to przywolanie jest dodawane do listy, a z ,,=" lub ,,:=" zastepuje wczesniejsza zawartosc listy. Prosze zauwazyc, ze opisane nizej typy ,,program" i ,,builtin" dziela wspolna liste, zatem usuniecie listy za pomoca ,,:=" lub ,,=" wplywa na oba typy. typem moze byc: "program" Wykonuje zewnetrzny program okreslony przypisana wartoscia. Jesli nie poda sie sciezki absolutnej, oczekuje sie, ze program bedzie wystepowal w /usr/lib/udev; w innym przypadku konieczne jest podanie absolutnej sciezki. Jest to wartosc domyslna, jesli nie poda sie typu. "builtin" Jak program, lecz korzysta z jednego z wbudowanych programow, zamiast z zewnetrznego. Dodane w wersji 199. Nazwa programu i kolejne argumenty sa rozdzielone spacje. Aby podac argumenty zawierajace spacje, nalezy je ujac w pojedyncze cudzyslowy. Mozna w ten sposob uruchamiac tylko bardzo szybkie zadania pierwszego planu. Uruchamianie procesu zdarzen na dluzszy czas moze zablokowac wszelkie kolejne zdarzenia dla danego lub zaleznego od niego urzadzenia. Prosze zauwazyc, ze uruchamianie programow, ktore uzyskuja dostep do sieci lub montuja/odmontowuja systemy plikow nie jest dozwolone wewnatrz regul udev, z powodu domyslnej piaskowicy, ktora jest wymuszona na systemd-udevd.service. Uruchamianie demonow lub innych dluzej dzialajacych procesow nie jest dozwolone; procesy rozgalezione, niezaleznie od tego czy sa oddzielone, sa bezwarunkowo zabijane po zakonczeniu obslugi zdarzenia. Aby aktywowac dluzej dzialajace procesy z poziomu regul udev, nalezy zapewnic jednostke uslugi i wciagnac ja z urzadzenia udev za pomoca wlasciwosci urzadzenia SYSTEMD_WANTS. Wiecej szczegolow w podreczniku systemd.device(5). LABEL Nazwa etykiety, do ktorej moze przeskoczyc GOTO. GOTO Przeskakuje do nastepnej etykiety LABEL z pasujaca nazwa. IMPORT{typ} Importuje zbior zmiennych jako wlasciwosci urzadzenia, w zaleznosci od typu: "program" Wykonuje zewnetrzny program okreslony jako przypisana wartosc i jesli powroci on poprawnie, importuje jego wyjscie, ktore musi byc w formacie kluczy srodowiska. Okreslenie sciezki, rozdzielenie polecenia/argumentow i cytowania dziala tak samo jak w RUN. Dodane w wersji 199. "builtin" Podobnie do ,,program", lecz korzysta z jednego z wbudowanych programow, zamiast z zewnetrznego. Dodane w wersji 199. "file" Importuje plik tekstowy podany jako przypisana wartosc, ktorego zawartosc musi wystepowac w formacie kluczy srodowiska. "db" Importuje pojedyncza wlasciwosc okreslona jako przypisana wartosc z biezacej bazy danych urzadzen. Dziala to tylko, jesli baza danych zostala juz wypelniona przez wczesniejsze zdarzenie. "cmdline" Importuje pojedyncza wlasciwosc z wiersza polecen jadra. W przypadku prostych flag, wartosc wlasciwosci jest ustawiana na ,,1". "parent" Importuje przechowywane klucze z urzadzenia nadrzednego, odczytujac wpis z bazy danych dla urzadzenia nadrzednego. Wartosc przypisywana do IMPORT{parent} sluzy jako filtr nazw kluczy do zaimportowania (z tym samym dopasowywaniem wzorcem wieloznacznikowym - glob, jaki jest uzywany do porownan). Mozna w ten sposob korzystac tylko z bardzo szybko wykonywanych zadan pierwszego planu. Wiecej szczegolow w opisie RUN. Prosze zauwazyc, ze w jednej regule mozna podac wiele kluczy IMPORT{}, a ,,=", ,,:=" i ,,+=" maja takie samo dzialanie jak ,,==". Klucz jest prawdziwy, jesli import powiedzie sie, chyba ze jako operator zastosowane jest ,,!=", co spowoduje, ze klucz bedzie prawdziwy, jesli import zawiedzie. OPTIONS Opcje regul i urzadzen: link_priority=wartosc Okresla priorytet tworzonych dowiazan symbolicznych. Urzadzenia z wyzszymi priorytami nadpisuja istniejace dowiazania symboliczne innych urzadzen. Wartosc domyslna to 0. string_escape=none|replace Przy wartosci ,,replace", nastepuje zastapienie potencjalnie niebezpiecznych znakow w lancuchach przypisywanych do NAME, SYMLINK i ENV{klucz}. Przy wartosci ,,none", zastepowanie nie jest przeprowadzane. Gdy wartosc nie jest ustawiona, zastepowanie jest przeprowadzane dla NAME, SYMLINK, lecz nie dla ENV{key}. Domyslnie wartosc nie jest ustawiona. static_node= Stosuje uprawnienia okreslone w tej regule do statycznych wezlow urzadzen o podanej nazwie. Dodatkowo, w przypadku kazdego znacznika okreslonego w tej regule, tworzy dowiazanie symboliczne w katalogu /run/udev/static_node-tags/znacznik wskazujace na statyczny wezel urzadzenia o podanej nazwie. Tworzenie statycznych wezlow urzadzen jest przeprowadzane przez systemd-tmpfiles, przed uruchomieniem systemd-udevd. Wezly statyczne moga nie posiadac odpowiadajacego urzadzenia jadra; sluza do wyzwolenia automatycznego ladowania modulow jadra, gdy uzyskiwany jest do nich dostep. watch Obserwuje wezel urzadzenia za pomoca inotify; gdy wezel jest zamykany po jego otwarciu do zapisu, tworzony jest uevent zmiany. nowatch Wylacza obserwowanie wezla urzadzenia za pomoca inotify. db_persist Ustawia flage (bit lepkosci) na wpisie bazy danych urzadzenia ze zdarzenia. Wlasciwosci urzadzen sa nastepnie przechowywane w bazie danych nawet, gdy wywolano udevadm info --cleanup-db. Opcja moze byc przydatna w okreslonych przypadkach (np. urzadzenia Device Mapper) aby uzyskac trwaly stan urzadzenia przy przejsciu z initrd. Dodane w wersji 241. log_level=poziom Pobiera nazwe poziomu dziennika taka jak ,,debug" lub ,,info" albo specjalna wartosc ,,reset". Przy podaniu nazwy poziomu dziennika, maksymalny poziom dziennika jest zmieniany na ten poziom. Gdy ustawi sie ,,reset", to poprzednio podany poziom dziennika jest odwolywany. Domyslnie przyjmuje poziom dziennika od glownego procesu systemd-udevd. Moze byc to przydatne przy debugowaniu zdarzen dla okreslonych urzadzen. Prosze zauwazyc, ze dany poziom dziennika jest stosowany w momencie, gdy przetwarzany jest wiersz zawierajacy te regule. Zatem przy debugowaniu zaleca sie podanie go we wczesniejszym miejscu np. w pierwszym wierszu 00-debug.rules. Przyklad debugowania przetwarzania uevent dla interfejsow sieciowych: # /etc/udev/rules.d/00-debug-net.rules SUBSYSTEM=="net", OPTIONS="log_level=debug" Dodane w wersji 248. Pola ENV, GROUP, MODE, NAME, OWNER, PROGRAM, RUN, SECLABEL i SYMLINK obsluguja proste podstawianie lancuchow. Podstawiania RUN sa przeprowadzane po przetworzeniu wszystkich regul, zaraz przed wykonaniem programu, pozwalajac na korzystanie z wlasciwosci urzadzenia ustawionych przez wczesniejsze dopasowane reguly. We wszystkich innych polach, podstawiania sa przeprowadzane, gdy przetwarzana jest dana pojedyncza regula. Dostepne podstawiania to: $kernel, %k Nadana przez jadro nazwa tego urzadzenia. $number, %n Nadany przez jadro numer tego urzadzenia. Na przyklad ,,sda3" ma numer jadra 3. $devpath, %p Sciezka (devpath) urzadzenia. $id, %b Nazwa urzadzenia dopasowanego przy szukaniu w gore sciezki (devpath) przy SUBSYSTEMS, KERNELS, DRIVERS i ATTRS. $driver Nazwa sterownika dopasowanego przy szukaniu w gore sciezki (devpath) przy SUBSYSTEMS, KERNELS, DRIVERS i ATTRS. $attr{plik}, %s{plik} Wartosc atrybutu sysfs odnalezionego na urzadzeniu, dla ktorego dopasowano wszystkie klucze regul. Jesli pasujace urzadzenie nie ma takiego atrybutu, a wczesniejsze testy KERNELS, SUBSYSTEMS, DRIVERS lub ATTRS wybraly urzadzenie nadrzedne, to stosowany jest atrybut z tego urzadzenia nadrzednego. Jesli atrybutem jest dowiazanie symboliczne, jako wartosc zwracany jest ostatni element celu dowiazania symbolicznego. $env{klucz}, %E{klucz} Wartosc wlasciwosci urzadzenia. $major, %M Glowny numer urzadzenia jadra dla tego urzadzenia. $minor, %m Poboczny numer urzadzenia jadra dla tego urzadzenia. $result, %c Lancuch zwracany przez program zewnetrzny zazadany za pomoca PROGRAM. Mozna wybrac pojedyncza czesc lancucha, rozdzielona spacja, podajac numer tej czesci jako atrybut ,,%c{N}". Jesli po liczbie wystapi znak ,,+", to dolaczana jest ta czesc wraz z wszystkimi kolejnymi czesciami lancucha: "%c{N+}". $parent, %P Nazwa wezla urzadzenia nadrzednego. $name Biezaca nazwa urzadzenia. Jesli nie zostala zmieniona regula, jest to nazwa nadana przez jadro. $links Rozdzielona spacja lista biezacych dowiazan symbolicznych. Wartosc jest ustawiana tylko przy zdarzeniu usuniecia lub gdy wczesniejsza regula przypisala wartosc. $root, %r Wartosc udev_root. $sys, %S Punkt montowania sysfs. $devnode, %N Nazwa wezla urzadzenia. %% Sam znak ,,%". $$ Sam znak ,,$". ZOBACZ TAKZE systemd-udevd.service(8), udevadm(8), systemd.link(5) UWAGI 1. Sekwencje specjalne w jezyku C (w jezyku angielskim) https://en.wikipedia.org/wiki/Escape_sequences_in_C#Table_of_escape_sequences TLUMACZENIE Tlumaczenie niniejszej strony podrecznika: Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . systemd 257.8 UDEV(7)