Scroll to navigation

UDEV(7) udev UDEV(7)

الاسم

udev - إدارة الأجهزة الديناميكية

الوصف

يزود udev برنامج النظام بأحداث الأجهزة، ويدير أذونات عُقد الأجهزة، وقد ينشئ روابط رمزية إضافية في الدليل /dev/، أو يعيد تسمية واجهات الشبكة. عادةً ما يُسند النواة أسماء أجهزة غير متوقعة بناءً على ترتيب الاكتشاف. توفر الروابط الرمزية ذات المعنى أو أسماء أجهزة الشبكة طريقة لتحديد الأجهزة بشكل موثوق بناءً على خصائصها أو تهيئتها الحالية.

يتلقى برنامج خفي udev، systemd-udevd.service(8)، أحداث uevents للأجهزة مباشرة من النواة كلما أُضيف جهاز أو أُزيل من النظام، أو غيّر حالته. عندما يتلقى udev حدث جهاز، يطابق مجموعته المهيأة من القواعد مقابل سمات جهاز متنوعة لتحديد الجهاز. قد توفر القواعد المتطابقة معلومات إضافية عن الجهاز لتُخزن في قاعدة بيانات udev أو لتُستخدم لإنشاء أسماء روابط رمزية ذات معنى.

تُخزن جميع معلومات الجهاز التي يعالجها udev في قاعدة بيانات udev وتُرسل إلى المشتركين المحتملين في الأحداث. يوفر المكتبة libudev الوصول إلى جميع البيانات المخزنة ومصادر الأحداث.

ملفات القواعد

تُقرأ قواعد udev من الملفات الموجودة في أدلة قواعد النظام /usr/lib/udev/rules.d و /usr/local/lib/udev/rules.d، والدليل الزمني المتغير /run/udev/rules.d ودليل الإدارة المحلي /etc/udev/rules.d. تُفرز جميع ملفات القواعد جماعيًا وتُعالج بترتيب معجمي، بغض النظر عن الأدلة التي توجد فيها. ومع ذلك، تستبدل الملفات ذات أسماء الملفات المتطابقة بعضها البعض. للملفات في /etc/ الأولوية القصوى، وتتفوق الملفات في /run/ على الملفات التي تحمل الاسم نفسه تحت /usr/. يمكن استخدام هذا لتجاوز ملف قواعد مزود من النظام بملف محلي إذا لزم الأمر؛ رابط رمزي في /etc/ بنفس اسم ملف قواعد في /usr/lib/، يشير إلى /dev/null، يُعطل ملف القواعد بالكامل. يجب أن تحتوي ملفات القواعد على الامتداد .rules؛ وتُتجاهل الامتدادات الأخرى.

يحتوي كل سطر في ملف القواعد على زوج مفتاح-قيمة واحد على الأقل. باستثناء الأسطر الفارغة أو الأسطر التي تبدأ بـ "#"، والتي تُتجاهل. هناك نوعان من المفاتيح: المطابقة والتعيين. إذا تطابقت جميع مفاتيح المطابقة مع قيمها، تُطبق القاعدة وتُسند القيم المحددة إلى مفاتيح التعيين.

قد تعيد قاعدة مطابقة تسمية واجهة شبكة، أو تضيف روابط رمزية تشير إلى عقدة الجهاز، أو تشغل برنامجًا محددًا كجزء من معالجة الحدث.

تتكون القاعدة من قائمة مفصولة بفواصل لتعبير واحد أو أكثر من مفتاح-عامل-قيمة. لكل تعبير تأثير مميز، اعتمادًا على المفتاح والعامل المستخدمين.

المعاملات

"=="

قارن من أجل المساواة. (للمفتاح المحدد القيمة المحددة.)

"!="

قارن من أجل عدم المساواة. (ليس للمفتاح المحدد القيمة المحددة، أو المفتاح المحدد غير موجود على الإطلاق.)

"="

أسند قيمة إلى مفتاح. تُعاد تعيين المفاتيح التي تمثل قائمة ويُسند هذه القيمة المفردة فقط.

"+="

أضف القيمة إلى مفتاح يحمل قائمة من الإدخالات.

"-="

أزل القيمة من مفتاح يحمل قائمة من الإدخالات.

أُضيف في الإصدارة 217.

":="

أسند قيمة إلى مفتاح نهائيًا؛ امنع أي تغييرات لاحقة.

أُضيف في الإصدار 247.

القيم

تُكتب القيم كسلاسل محاطة بعلامتي اقتباس مزدوجتين، مثل ("string"). لتضمين علامة اقتباس (") في القيمة، اسبقها بخط مائل عكسي (\"). لا تُفك أي حدوثات أخرى لخط مائل عكسي متبوع بحرف. أي، "\t\n" يُعامل كأربعة أحرف: خط مائل عكسي، حرف t صغير، خط مائل عكسي، حرف n صغير.

يمكن أن تُسبق السلسلة بحرف e صغير (e"string\n") لتمييز السلسلة على أنها مهربة بنمط C، انظر Escape sequences in C[1]. على سبيل المثال، تُحلل e"string\n" كـ 7 أحرف: 6 أحرف صغيرة وسطر جديد. يمكن أن يكون هذا مفيدًا لكتابة أحرف خاصة عندما يتطلبها برنامج تشغيل النواة.

يمكن أن تُسبق السلسلة بحرف i صغير (i"string") لتمييز أن السلسلة أو النمط سيتطابقان بدون حساسية لحالة الأحرف. على سبيل المثال، i"foo" سيتطابق مع "foo"، "FOO"، "FoO" وهكذا. يمكن استخدام البادئة فقط لقواعد المطابقة ("==") أو عدم المطابقة ("!=")، على سبيل المثال ATTR{foo}==i"abcd".

يرجى ملاحظة أن NUL غير مسموح به في أي من متغيري السلسلة.

المفاتيح

يمكن استخدام أسماء المفاتيح التالية للمطابقة مقابل خصائص الجهاز. بعض المفاتيح تطابق أيضًا خصائص الأجهزة الأم في sysfs، وليس فقط الجهاز الذي أنشأ الحدث. إذا حُددت مفاتيح متعددة تطابق جهازًا أمًا في قاعدة واحدة، يجب أن تتطابق جميع هذه المفاتيح عند نفس الجهاز الأم.

ACTION

طابق اسم إجراء الحدث.

DEVPATH

طابق مسار devpath لجهاز الحدث.

KERNEL

طابق اسم جهاز الحدث.

KERNELS

ابحث في مسار الجهاز لأعلى عن اسم جهاز مطابق.

NAME

طابق اسم واجهة شبكة. يمكن استخدامه بعد تعيين مفتاح NAME في إحدى القواعد السابقة.

SYMLINK

طابق اسم رابط رمزي يستهدف العقدة. يمكن استخدامه بعد تعيين مفتاح SYMLINK في إحدى القواعد السابقة. قد توجد روابط رمزية متعددة؛ يلزم تطابق واحد فقط. إذا كان العامل هو "!="، يُرجع الرمز صحيحًا فقط إذا لم يوجد رابط رمزي مطابق.

SUBSYSTEM

طابق النظام الفرعي لجهاز الحدث.

SUBSYSTEMS

ابحث في مسار الجهاز لأعلى عن اسم نظام فرعي مطابق للجهاز.

DRIVER

طابق اسم برنامج التشغيل لجهاز الحدث. عيّن هذا المفتاح فقط للأجهزة المرتبطة ببرنامج تشغيل وقت توليد الحدث.

DRIVERS

ابحث في مسار الجهاز لأعلى عن اسم برنامج تشغيل مطابق للجهاز.

ATTR{filename}

طابق قيمة سمة sysfs لجهاز الحدث.

تُتجاهل المسافات البيضاء الزائدة في قيم السمات ما لم تحتوِ قيمة المطابقة المحددة نفسها على مسافات بيضاء زائدة.

ATTRS{filename}

ابحث في مسار الجهاز لأعلى عن جهاز بقيم سمة sysfs مطابقة. إذا حُددت مطابقات ATTRS متعددة، يجب أن تتطابق جميعها على نفس الجهاز.

تُتجاهل المسافات البيضاء الزائدة في قيم السمات ما لم تحتوِ قيمة المطابقة المحددة نفسها على مسافات بيضاء زائدة.

SYSCTL{معطى_النواة}

طابق قيمة معامل نواة.

أُضيف في الإصدار 240.

ENV{key}

طابق قيمة خاصية جهاز.

CONST{key}

طابق ثابتًا على مستوى النظام. المفاتيح المدعومة هي:

"arch"

بنية النظام. راجع ConditionArchitecture= في systemd.unit(5) للقيم الممكنة.

أُضيف في الإصدارة 244.

"virt"

بيئة المحاكاة الافتراضية للنظام. راجع systemd-detect-virt(1) للقيم الممكنة.

أُضيف في الإصدارة 244.

"cvm"

تقنية المحاكاة الافتراضية السرية للنظام. راجع systemd-detect-virt(1) للقيم الممكنة.

أُضيف في الإصدار 254.

لن تتطابق المفاتيح غير المعروفة أبدًا.

أُضيف في الإصدارة 244.

TAG

طابق إحدى علامات الجهاز. يمكن استخدامه بعد تعيين مفتاح TAG في إحدى القواعد السابقة. قد توجد علامات متعددة؛ يلزم تطابق واحد فقط. إذا كان العامل هو "!="، يُرجع الرمز صحيحًا فقط إذا لم توجد علامة مطابقة.

TAGS

ابحث في مسار الجهاز لأعلى عن جهاز بعلامة مطابقة. إذا كان العامل هو "!="، يُرجع الرمز صحيحًا فقط إذا لم توجد علامة مطابقة.

TEST{octal mode mask}

اختبر وجود ملف. يمكن تحديد قناع وضع ثماني إذا لزم الأمر.

PROGRAM

نفّذ برنامجًا لتحديد وجود تطابق؛ يكون المفتاح صحيحًا إذا عاد البرنامج بنجاح. تُتاح خصائص الجهاز للبرنامج المنفذ في البيئة. يتوفر المخرج المعياري للبرنامج في مفتاح RESULT.

يمكن استخدام هذا فقط لمهام الواجهة الأمامية قصيرة المدى جدًا. للتفاصيل، راجع RUN.

لاحظ أنه يمكن تحديد مفاتيح PROGRAM متعددة في قاعدة واحدة، وأن "=" و ":=" و "+=" لها نفس تأثير "==".

RESULT

طابق السلسلة المُعادة من آخر استدعاء PROGRAM. يمكن استخدام هذا المفتاح في نفس القاعدة أو في أي قاعدة لاحقة بعد استدعاء PROGRAM.

معظم الحقول تدعم مطابقة أنماط glob shell والأنماط البديلة. الأحرف الخاصة التالية مدعومة:

"*"

يطابق صفرًا أو أكثر من الأحرف.

"؟"

يطابق أي حرف واحد.

"[]"

يطابق أي حرف واحد محدد داخل الأقواس. على سبيل المثال، سلسلة النمط "tty[SR]" تطابق إما "ttyS" أو "ttyR". النطاقات مدعومة أيضًا عبر الحرف "-". على سبيل المثال، لمطابقة نطاق جميع الأرقام، يمكن استخدام النمط "[0-9]". إذا كان الحرف الأول بعد "[" هو "!"، تُطابق أي أحرف غير محصورة.

"|"

يفصل بين الأنماط البديلة. على سبيل المثال، سلسلة النمط "abc|x*" تطابق إما "abc" أو "x*".

أُضيف في الإصدارة 217.

المفاتيح التالية يمكنها الحصول على قيم مسندة:

NAME

الاسم الذي يجب استخدامه لواجهة الشبكة. انظر systemd.link(5) للاطلاع على آلية أعلى مستوى لتعيين اسم الواجهة. لا يمكن لـ udev تغيير اسم عقدة الجهاز، بل يمكن فقط إنشاء روابط رمزية إضافية .

SYMLINK

اسم رابط رمزي يستهدف العقدة. كل قاعدة مطابقة تضيف هذه القيمة إلى قائمة الروابط الرمزية التي سيتم إنشاؤها.

مجموعة الأحرف المسموح بها لتسمية رابط رمزي محدودة. الأحرف المسموح بها هي ”0-9A-Za-z#+-.:=@_/“، وتسلسلات الأحرف الصالحة بتنسيق UTF-8، والترميز السداسي العشري ”\x00“. ويتم استبدال جميع الأحرف الأخرى بحرف ”_“ .

يمكن تحديد روابط رمزية متعددة بفصل الأسماء بحرف المسافة. في حالة ادعاء أجهزة متعددة نفس الاسم، يشير الرابط دائمًا إلى الجهاز ذي أعلى link_priority. إذا اختفى الجهاز الحالي، تُعاد تقييم الروابط ويصبح الجهاز ذو أعلى link_priority تاليًا مالك الرابط. إذا لم يُحدد link_priority، يكون ترتيب الأجهزة (وأي منها يملك الرابط) غير محدد.

يجب ألا تتعارض أسماء الروابط الرمزية أبدًا مع أسماء عقد الأجهزة المبدئية للنواة، لأن ذلك سيؤدي إلى سلوك غير متوقع.

OWNER، GROUP، MODE

أذونات عقدة الجهاز. كل قيمة محددة تتجاوز القيمة المبدئية المضمنة في الترجمة.

SECLABEL{module}

يطبق تسمية وحدة أمان لينكس المحددة على عقدة الجهاز.

أُضيف في الإصدارة 209.

ATTR{key}

القيمة التي يجب كتابتها إلى سمة sysfs لجهاز الحدث.

SYSCTL{معطى_النواة}

القيمة التي يجب كتابتها إلى معامل النواة.

أُضيف في الإصدارة 220.

ENV{key}

يضبط قيمة خاصية جهاز. أسماء الخصائص التي تبدأ بـ "." لا تُخزن في قاعدة البيانات ولا تُصدر إلى الأحداث أو الأدوات الخارجية (التي تُشغّل، على سبيل المثال، بواسطة مفتاح المطابقة PROGRAM).

TAG

يُرفق علامة بجهاز. يُستخدم هذا لتصفية الأحداث لمستخدمي وظيفة المراقبة في libudev، أو لتعداد مجموعة من الأجهزة الموسومة. يمكن للتنفيذ العمل بكفاءة فقط إذا أُرفقت بضع علامات فقط بجهاز. يُقصد استخدامه فقط في سياقات ذات متطلبات تصفية أجهزة محددة، وليس كعلامة عامة. قد يؤدي الاستخدام المفرط إلى معالجة أحداث غير فعالة.

RUN{type}

يحدد برنامجًا ليُشغّل بعد معالجة جميع قواعد الحدث. مع "+="، تُضاف هذه الاستدعاء إلى القائمة، ومع "=" أو ":="، تستبدل أي محتويات سابقة للقائمة. يُرجى ملاحظة أن كلا النوعين "program" و"builtin" الموصوفين أدناه يشتركان في قائمة مشتركة، لذا فإن مسح القائمة بـ ":=" و"=" يؤثر على كلا النوعين.

type قد يكون:

"program"

ينفذ برنامجًا خارجيًا محددًا كقيمة مسندة. إذا لم يُعطَ مسار مطلق، يُتوقع أن يكون البرنامج موجودًا في /usr/lib/udev؛ وإلا، يجب تحديد المسار المطلق.

هذا هو المبدئي إذا لم يُحدد type.

"مضمن"

مثل program، لكن استخدم أحد البرامج المضمنة بدلاً من برنامج خارجي.

أُضيف في الإصدارة 199.

يُفصل اسم البرنامج والوسائط التالية بمسافات. يمكن استخدام علامات الاقتباس المفردة لتحديد وسائط تحتوي على مسافات.

يمكن استخدام هذا فقط للمهام الأمامية قصيرة جدًا. قد يؤدي تشغيل عملية حدث لفترة طويلة إلى حظر جميع الأحداث اللاحقة لهذا الجهاز أو جهاز تابع.

لاحظ أن تشغيل البرامج التي تصل إلى الشبكة أو تصل/تفصل أنظمة الملفات غير مسموح به داخل قواعد udev، بسبب الصندوق الرملي المبدئي المفروض على systemd-udevd.service.

بدء الخدمات أو العمليات طويلة الأمد الأخرى غير مسموح به؛ العمليات المتفرعة، سواء كانت منفصلة أم لا، ستُقتل دون قيد أو شرط بعد انتهاء معالجة الحدث. لتفعيل عمليات طويلة الأمد من قواعد udev، قدم وحدة خدمة واسحبها من جهاز udev باستخدام خاصية الجهاز SYSTEMD_WANTS. راجع systemd.device(5) للتفاصيل.

LABEL

تسمية مسماة يمكن لـ GOTO القفز إليها.

GOTO

يقفز إلى LABEL التالي باسم مطابق.

استيراد{النوع}

استورد مجموعة من المتغيرات كخصائص جهاز، اعتمادًا على type:

"program"

نفذ برنامجًا خارجيًا محددًا كقيمة مسندة، وإذا عاد بنجاح، استورد مخرجاته التي يجب أن تكون بتنسيق مفتاح بيئة. يعمل تحديد المسار، وفصل الأمر/الوسيطة، والاقتباس كما في RUN.

أُضيف في الإصدارة 199.

"مضمن"

مشابه لـ "program"، لكن استخدم أحد البرامج المضمنة بدلاً من برنامج خارجي.

أُضيف في الإصدارة 199.

"file"

استورد ملفًا نصيًا محددًا كقيمة مسندة، يجب أن يكون محتواه بتنسيق مفتاح بيئة.

"db"

استورد خاصية واحدة محددة كقيمة مسندة من قاعدة بيانات الجهاز الحالية. يعمل هذا فقط إذا كانت قاعدة البيانات مملوءة بالفعل بحدث سابق.

"cmdline"

استورد خاصية واحدة من سطر أوامر النواة. للأعلام البسيطة، تُضبط قيمة الخاصية على "1".

"parent"

استورد المفاتيح المخزنة من الجهاز الأصل بقراءة إدخال قاعدة بيانات الجهاز الأصل. تُستخدم القيمة المسندة إلى IMPORT{parent} كمرشح لأسماء المفاتيح للاستيراد (مع نفس مطابقة نمط glob للصدفة المستخدمة للمقارنات).

يمكن استخدام هذا فقط للمهام الأمامية قصيرة جدًا. للتفاصيل، راجع RUN.

لاحظ أنه يمكن تحديد مفاتيح IMPORT{} متعددة في قاعدة واحدة، و "=" و ":=" و "+=" لها نفس تأثير "==". المفتاح صحيح إذا كان الاستيراد ناجحًا، ما لم يُستخدم "!=" كعامل تشغيل مما يجعل المفتاح صحيحًا إذا فشل الاستيراد.

الخيارات

خيارات القاعدة والجهاز:

link_priority=قيمة

حدد أولوية الروابط الرمزية المنشأة. الأجهزة ذات الأولويات الأعلى تستبدل الروابط الرمزية الموجودة لأجهزة أخرى. المبدئي هو 0.

string_escape=none|replace

عند "استبدال"، تُستبدل الأحرف غير الآمنة المحتملة في السلاسل المسندة إلى NAME و SYMLINK و ENV{مفتاح}. عند "لا شيء"، لا يُجرى أي استبدال. عند عدم الضبط، يُجرى الاستبدال لـ NAME و SYMLINK، لكن ليس لـ ENV{مفتاح}. المبدئي هو غير مضبوط.

static_node=

طبق الأذونات المحددة في هذه القاعدة على عقدة الجهاز الثابتة بالاسم المحدد. أيضًا، لكل علامة محددة في هذه القاعدة، أنشئ رابطًا رمزيًا في الدليل /run/udev/static_node-tags/علامة يشير إلى عقدة الجهاز الثابتة بالاسم المحدد. يُجرى إنشاء عقدة الجهاز الثابتة بواسطة systemd-tmpfiles قبل بدء systemd-udevd. قد لا تحتوي العقد الثابتة على جهاز نواة مقابل؛ تُستخدم لتحفيز تحميل وحدة النواة آليًا عند الوصول إليها.

watch

راقب عقدة الجهاز باستخدام inotify؛ عندما تُغلق العقدة بعد فتحها للكتابة، يُصنع حدث uevent تغيير.

nowatch

تعطيل مراقبة عقدة جهاز باستخدام inotify.

db_persist

تعيين العلامة (البت الثابت) على إدخال قاعدة بيانات udev لجهاز الحدث. تُحفظ خصائص الجهاز في قاعدة البيانات حتى عند استدعاء udevadm info --cleanup-db. قد يكون هذا الخيار مفيدًا في حالات معينة (مثل أجهزة Device Mapper) لاستمرار حالة الجهاز عند الانتقال من initrd.

أُضيف في الإصدارة 241.

log_level=level

يأخذ اسم مستوى سجل مثل "debug" أو "info"، أو قيمة خاصة "reset". عند تحديد اسم مستوى سجل، يُغير الحد الأقصى لمستوى السجل إلى ذلك المستوى. عند تعيين "reset"، يُلغى مستوى السجل المحدد سابقًا. المبدئي هو مستوى سجل العملية الرئيسية لـ systemd-udevd.

قد يكون هذا مفيدًا عند تصحيح أحداث أجهزة معينة. لاحظ أن مستوى السجل يُطبق عند معالجة السطر الذي يتضمن هذه القاعدة. لذلك، للتصحيح، يُوصى بتحديد هذا في مكان مبكر، مثل السطر الأول من 00-debug.rules.

مثال لتصحيح معالجة uevent لواجهات الشبكة:

# /etc/udev/rules.d/00-debug-net.rules
SUBSYSTEM=="net", OPTIONS="log_level=debug"

أُضيف في الإصدار 248.

dump

تفريغ حالة الحدث الجاري معالجته حاليًا. قد يكون مفيدًا لتصحيح قواعد udev بإدراج هذا الخيار.

أُضيف في الإصدار 258.

dump-json

مشابه لـ dump، لكن يُفرغ حالة الحدث بتنسيق JSON.

أُضيف في الإصدار 259.

تدعم الحقول ENV وGROUP وMODE وNAME وOWNER وPROGRAM وRUN وSECLABEL وSYMLINK استبدالات سلسلة بسيطة. تُجرى استبدالات RUN بعد معالجة جميع القواعد، قبل تنفيذ البرنامج مباشرة، مما يسمح باستخدام خصائص الجهاز المحددة بواسطة قواعد المطابقة السابقة. بالنسبة لجميع الحقول الأخرى، تُجرى الاستبدالات أثناء معالجة القاعدة الفردية. الاستبدالات المتاحة هي:

$kernel, %k

اسم النواة لهذا الجهاز.

$number, %n

رقم النواة لهذا الجهاز. على سبيل المثال، "sda3" له رقم نواة 3.

$devpath, %p

مسار الجهاز (devpath) للجهاز.

$id, %b

اسم الجهاز المطابق أثناء البحث في مسار الجهاز لأعلى عن SUBSYSTEMS وKERNELS وDRIVERS وATTRS.

$driver

اسم برنامج التشغيل للجهاز المطابق أثناء البحث في مسار الجهاز لأعلى عن SUBSYSTEMS وKERNELS وDRIVERS وATTRS.

$attr{file}, %s{file}

قيمة سمة sysfs الموجودة في الجهاز حيث تطابقت جميع مفاتيح القاعدة. إذا لم يكن للجهاز المطابق مثل هذه السمة، واختار اختبار سابق لـ KERNELS أو SUBSYSTEMS أو DRIVERS أو ATTRS جهازًا أبويًا، فتُستخدم السمة من ذلك الجهاز الأبوي.

إذا كانت السمة رابطًا رمزيًا، يُرجع العنصر الأخير من هدف الرابط الرمزي كقيمة.

$env{key}, %E{key}

قيمة خاصية جهاز.

$major, %M

رقم النواة الرئيسي للجهاز.

$minor, %m

رقم النواة الثانوي للجهاز.

$result, %c

السلسلة النصية التي يُرجعها البرنامج الخارجي المطلوب مع PROGRAM. يمكن اختيار جزء واحد من السلسلة، مفصول بحرف مسافة، بتحديد رقم الجزء كخاصية: "%c{N}". إذا تبع الرقم الحرف "+"، يُستبدل هذا الجزء بالإضافة إلى جميع الأجزاء المتبقية من سلسلة النتيجة: "%c{N+}".

$parent, %P

اسم العقدة للجهاز الأب.

$name

الاسم الحالي للجهاز. إذا لم يُغير بواسطة قاعدة، فهو اسم جهاز النواة.

$links

قائمة مفصولة بمسافات من الروابط الرمزية الحالية. تُعين القيمة فقط أثناء حدث إزالة أو إذا أسندت قاعدة سابقة قيمة.

$root, %r

قيمة udev_root.

$sys, %S

نقطة وصل sysfs.

$devnode, %N

اسم عقدة الجهاز.

%%

الحرف "%" نفسه.

$$

الحرف "$" نفسه.

انظر أيضًا

systemd-udevd.service(8), udevadm(8), systemd.link(5)

ملاحظات

1.
تسلسلات الهروب في C

ترجمة

تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.

systemd 261~rc3