UDEVADM(8) udevadm UDEVADM(8)

udevadm - ابزار مدیریت و خطایابی دستگاه‌های udev

udevadm [--debug] [--version] [--help]

udevadm info [options] [devpath]

udevadm trigger [options] [devpath]

udevadm settle [options]

udevadm control option

udevadm monitor [options]

udevadm test [options] devpath

udevadm test-builtin [options] command devpath

udevadm verify [options...] [file...]

udevadm wait [options] device|syspath

udevadm lock [options] command

udevadm انتظار یک فرمان و گزینه‌های ویژه آن فرمان را دارد. این ابزار رفتار زمان اجرای systemd-udevd را کنترل می‌کند، رویدادهای هسته را درخواست می‌نماید، صف رویدادها را مدیریت می‌کند و سازوکارهای اشکال‌زدایی ساده‌ای را فراهم می‌سازد.

-d, --debug

چاپ پیام‌های اشکال‌زدایی در خطای استاندارد (stderr). این گزینه در فرمان‌های udevadm test و udevadm test-builtin به صورت ضمنی فعال است.

-h, --help

نمایش یک متن راهنمای کوتاه و خروج.

پرس‌وجوی پایگاه داده udev برای دریافت اطلاعات دستگاه.

آرگومان‌های مکانی باید برای مشخص کردن یک یا چند دستگاه استفاده شوند. هر کدام می‌توانند یک نام دستگاه باشند (که در این صورت باید با /dev/ شروع شود)، یک مسیر sys (که در این صورت باید با /sys/ شروع شود)، یا نام یک واحد دستگاه systemd (که در این صورت باید به ".device" ختم شود، به systemd.device(5) مراجعه کنید).

-q, --query=TYPE

پرس‌وجوی پایگاه داده برای نوع مشخص‌شده از داده‌های دستگاه. مقادیر مجاز برای TYPE عبارتند از: name، symlink، path، property، all.

--property=NAME

هنگام نمایش ویژگی‌های دستگاه با استفاده از گزینه --query=property، نمایش را به ویژگی‌های مشخص‌شده در آرگومان محدود می‌کند. آرگومان باید فهرستی از نام‌های ویژگی‌ها باشد که با ویرگول از هم جدا شده‌اند. در صورت عدم تعیین، همه ویژگی‌های شناخته‌شده نمایش داده می‌شوند.

در نسخه 250 اضافه شد.

--value

هنگام نمایش ویژگی‌های دستگاه با استفاده از گزینه --query=property، فقط مقادیر آن‌ها را چاپ کرده و از نام ویژگی و "=" صرف‌نظر می‌کند.

نمی‌تواند همراه با -x/--export یا -P/--export-prefix استفاده شود.

در نسخه 250 اضافه شد.

-p, --path=DEVPATH

مسیر /sys/ دستگاه مورد پرس‌وجو، برای مثال [/sys/]/class/block/sda. این گزینه جایگزینی برای آرگومان مکانی با پیشوند /sys/ است. دستور udevadm info --path=/class/block/sda معادل udevadm info /sys/class/block/sda است.

-n, --name=FILE

نام گره دستگاه یا پیوند نمادین (symlink) مورد پرس‌وجو، برای مثال [/dev/]/sda. این گزینه جایگزینی برای آرگومان مکانی با پیشوند /dev/ است. دستور udevadm info --name=sda معادل udevadm info /dev/sda است.

-r, --root

چاپ مسیرهای مطلق در پرس‌وجوی name یا symlink.

-a, --attribute-walk

چاپ تمام ویژگی‌های sysfs دستگاه مشخص‌شده که می‌توان از آن‌ها در قوانین udev برای تطبیق با دستگاه مورد نظر استفاده کرد. این گزینه تمام دستگاه‌های موجود در طول زنجیره را تا ریشه sysfs که در قوانین udev قابل استفاده هستند چاپ می‌کند.

این سوییچ از حالت خروجی JSON پشتیبانی می‌کند (به --json= در زیر مراجعه کنید). توجه داشته باشید از آنجا که این سوییچ چندین شیء JSON تولید می‌کند، حالت JSON-SEQ به طور خودکار فعال می‌شود (RFC7464). (نکته: ابزارهایی مانند jq[1] به صورت بومی از JSON-SEQ از طریق سوییچ --seq پشتیبانی می‌کنند.)

-t, --tree

نمایش درخت sysfs. این گزینه به صورت بازگشتی سلسله‌مراتب sysfs را پیمایش کرده و آن را در یک ساختار درختی نمایش می‌دهد. اگر مسیری مشخص شود، تنها زیردرخت زیر آن و دایرکتوری‌های والد آن نمایش داده می‌شوند. این کار هم موارد دستگاه و هم زیرسیستم را نشان خواهد داد.

در نسخه 251 اضافه شد.

-x, --export

چاپ خروجی به صورت جفت‌های کلید/مقدار. مقادیر در داخل گیومه تکی (single quotes) قرار می‌گیرند. این گزینه تنها زمانی تأثیر دارد که --query=property یا --device-id-of-file=FILE مشخص شده باشد.

-P, --export-prefix=NAME

افزودن یک پیشوند به نام کلید مقادیر صادرشده. این گزینه مستلزم --export است.

-d, --device-id-of-file=FILE

چاپ شماره‌های اصلی/فرعی (major/minor) دستگاه زیرین که پرونده روی آن قرار دارد. اگر این گزینه مشخص شود، تمام آرگومان‌های مکانی نادیده گرفته می‌شوند.

-e, --export-db

برون‌بری محتوای پایگاه داده udev.

-c, --cleanup-db

پاک‌سازی پایگاه داده udev.

-w[SECONDS], --wait-for-initialization[=SECONDS]

انتظار برای مقداردهی اولیه دستگاه. اگر آرگومان SECONDS مشخص نشود، حالت پیش‌فرض انتظار همیشگی است.

در نسخه 243 اضافه شد.

--subsystem-match[=SUBSYSTEM], --subsystem-nomatch[=SUBSYSTEM]

هنگام استفاده همراه با --export-db، به ترتیب تنها دستگاه‌های متعلق به زیرسیستم داده‌شده یا غیر از آن را نشان می‌دهد.

در نسخه 255 اضافه شد.

--attr-match[=FILE[=VALUE]], --attr-nomatch[=FILE[=VALUE]]

هنگام استفاده همراه با --export-db، به ترتیب تنها دستگاه‌هایی را نشان می‌دهد که با ویژگی مشخص‌شده تطابق دارند یا ندارند.

در نسخه 255 اضافه شد.

--property-match[=KEY=VALUE]

هنگام استفاده همراه با --export-db، تنها دستگاه‌هایی را نشان می‌دهد که با ویژگی و مقدار داده‌شده مطابقت دارند.

در نسخه 255 اضافه شد.

--tag-match[=TAG]

هنگام استفاده همراه با --export-db، تنها دستگاه‌های دارای برچسب (tag) داده‌شده را نشان می‌دهد.

در نسخه 255 اضافه شد.

--sysname-match[=NAME]

هنگام استفاده همراه با --export-db، تنها دستگاه‌های دارای مسیر "/sys" داده‌شده را نشان می‌دهد.

در نسخه 255 اضافه شد.

--name-match[=NAME]

هنگام استفاده همراه با --export-db، تنها دستگاه‌های دارای نام داده‌شده در "/dev" را نشان می‌دهد.

در نسخه 255 اضافه شد.

--parent-match[=NAME]

هنگام استفاده همراه با --export-db، تنها دستگاه‌های دارای دستگاه والد داده‌شده را نشان می‌دهد.

در نسخه 255 اضافه شد.

--initialized-match, --initialized-nomatch

هنگام استفاده همراه با --export-db، به ترتیب تنها دستگاه‌هایی را نشان می‌دهد که مقداردهی اولیه شده‌اند یا نشده‌اند.

در نسخه 255 اضافه شد.

--json=MODE

نمایش خروجی با قالب‌بندی JSON. یکی از مقادیر زیر را می‌پذیرد: "short" (برای کوتاه‌ترین خروجی ممکن بدون هیچ‌گونه فاصله اضافی یا شکست خط)، "pretty" (برای نسخه مرتب با تورفتگی و شکست خط) یا "off" (برای غیرفعال کردن خروجی JSON، حالت پیش‌فرض).

-h, --help

نمایش یک متن راهنمای کوتاه و خروج.

--no-pager

خروجی را به یک صفحه‌بند (pager) لوله نکن.

خروجی تولیدشده مدخل فعلی پایگاه داده دستگاه را در قالبی مختصر نشان می‌دهد. در ابتدای هر خط نمایش‌داده‌شده یکی از نویسه‌های زیر به عنوان پیشوند قرار می‌گیرد:

جدول ۱. پیشوندهای خروجی udevadm info

پیشوند مفهوم
"P:" مسیر دستگاه در /sys/
"M:" نام دستگاه در /sys/ (یعنی آخرین مؤلفه "P:")
"R:" شماره دستگاه در /sys/ (یعنی پسوند عددی آخرین مؤلفه "P:")
"J:" شناسه دستگاه
"U:" زیرسیستم هسته
"B:" زیرسیستم درایور
"T:" نوع دستگاه هسته در داخل زیرسیستم
"D:" شماره اصلی/فرعی (major/minor) گره دستگاه هسته
"I:" اندیس رابط شبکه
"N:" نام گره دستگاه هسته
"L:" اولویت پیوند نمادین گره دستگاه
"S:" پیوند نمادین گره دستگاه
"Q:" شماره توالی دستگاه بلوکی (DISKSEQ)
"V:" درایور متصل‌شده
"E:" ویژگی دستگاه

درخواست رویدادهای دستگاه از هسته. اساساً برای بازپخش رویدادها در زمان اتصال سرد (coldplug) سیستم استفاده می‌شود.

مشخصات دستگاه را به عنوان آرگومان‌های مکانی دریافت می‌کند. به توضیحات info در بالا مراجعه کنید.

-v, --verbose

چاپ فهرست دستگاه‌هایی که راه‌اندازی (trigger) خواهند شد.

-n, --dry-run

رویداد را واقعاً راه‌اندازی نکن (اجرای آزمایشی).

-q, --quiet

پنهان‌سازی ثبت خطاهای ناشی از راه‌اندازی رویدادها.

در نسخه 248 اضافه شد.

-t, --type=TYPE

راه‌اندازی نوع خاصی از دستگاه‌ها. انواع معتبر عبارتند از: "all"، "devices" و "subsystems". مقدار پیش‌فرض "devices" است.

-c, --action=ACTION

نوع رویدادی که باید راه‌اندازی شود. کنش‌های ممکن عبارتند از: "add"، "remove"، "change"، "move"، "online"، "offline"، "bind" و "unbind". همچنین می‌توان از مقدار ویژه "help" برای فهرست کردن کنش‌های ممکن استفاده کرد. مقدار پیش‌فرض "change" است.

--prioritized-subsystem=SUBSYSTEM[,SUBSYSTEM...]

فهرستی از زیرسیستم‌ها که با ویرگول از هم جدا شده‌اند را می‌پذیرد. هنگام راه‌اندازی رویدادها برای دستگاه‌ها، ابتدا دستگاه‌های متعلق به زیرسیستم‌های مشخص‌شده و والدین آن‌ها راه‌اندازی می‌شوند. به عنوان مثال، اگر --prioritized-subsystem=block,net باشد، ابتدا تمام دستگاه‌های بلوکی و والدین آن‌ها راه‌اندازی می‌شوند، سپس تمام دستگاه‌های شبکه و والدین آن‌ها راه‌اندازی می‌گردند، و در پایان سایر دستگاه‌ها راه‌اندازی می‌شوند. این گزینه را می‌توان چندین بار مشخص کرد که در این صورت فهرست زیرسیستم‌ها ادغام خواهد شد. یعنی، --prioritized-subsystem=block --prioritized-subsystem=net معادل --prioritized-subsystem=block,net است.

در نسخه 251 اضافه شد.

-s, --subsystem-match=SUBSYSTEM

راه‌اندازی رویدادها برای دستگاه‌هایی که متعلق به یک زیرسیستم منطبق هستند. این گزینه از تطبیق الگوی سبک شل پشتیبانی می‌کند. هنگامی که این گزینه بیش از یک بار مشخص شود، نتایج با OR منطقی ترکیب می‌شوند؛ یعنی تمام دستگاه‌های موجود در هر یک از زیرسیستم‌ها راه‌اندازی می‌شوند.

-S, --subsystem-nomatch=SUBSYSTEM

رویدادها را برای دستگاه‌هایی که متعلق به یک زیرسیستم منطبق هستند راه‌اندازی نکن. این گزینه از تطبیق الگوی سبک شل پشتیبانی می‌کند. هنگامی که این گزینه بیش از یک بار مشخص شود، نتایج با AND منطقی ترکیب می‌شوند؛ یعنی دستگاه‌هایی که با هیچ‌یک از زیرسیستم‌های مشخص‌شده مطابقت ندارند راه‌اندازی می‌شوند.

-a, --attr-match=ATTRIBUTE=VALUE

راه‌اندازی رویدادها برای دستگاه‌های دارای ویژگی sysfs منطبق. اگر مقداری همراه با نام ویژگی مشخص شده باشد، محتوای ویژگی با استفاده از تطبیق الگوی سبک شل در برابر مقدار داده‌شده سنجیده می‌شود. اگر مقداری تعیین نشده باشد، وجود ویژگی sysfs بررسی می‌شود. وقتی این گزینه چندین بار مشخص شود، نتایج با AND منطقی ترکیب می‌شوند؛ یعنی فقط دستگاه‌هایی که همه ویژگی‌های مشخص‌شده را دارند راه‌اندازی می‌شوند.

-A, --attr-nomatch=ATTRIBUTE=VALUE

رویدادها را برای دستگاه‌های دارای ویژگی sysfs منطبق راه‌اندازی نکن. اگر مقداری همراه با نام ویژگی مشخص شده باشد، محتوای ویژگی با استفاده از تطبیق الگوی سبک شل در برابر مقدار داده‌شده سنجیده می‌شود. اگر مقداری تعیین نشده باشد، وجود ویژگی sysfs بررسی می‌شود. وقتی این گزینه چندین بار مشخص شود، نتایج با AND منطقی ترکیب می‌شوند؛ یعنی فقط دستگاه‌هایی که هیچ‌یک از ویژگی‌های مشخص‌شده را ندارند راه‌اندازی می‌شوند.

-p, --property-match=PROPERTY=VALUE

راه‌اندازی رویدادها برای دستگاه‌های دارای مقدار ویژگی منطبق. این گزینه از تطبیق الگوی سبک شل پشتیبانی می‌کند. هنگامی که این گزینه بیش از یک بار مشخص شود، نتایج با OR منطقی ترکیب می‌شوند؛ یعنی دستگاه‌هایی که یکی از ویژگی‌های مشخص‌شده را دارند راه‌اندازی می‌شوند.

-g, --tag-match=TAG

راه‌اندازی رویدادها برای دستگاه‌های دارای برچسب منطبق. هنگامی که این گزینه چندین بار مشخص شود، نتایج با AND منطقی ترکیب می‌شوند؛ یعنی دستگاه‌هایی که تمام برچسب‌های مشخص‌شده را دارند راه‌اندازی می‌شوند.

-y, --sysname-match=NAME

راه‌اندازی رویدادها برای دستگاه‌هایی که آخرین مؤلفه (یعنی نام پرونده) مسیر /sys/ آن‌ها با PATH مشخص‌شده مطابقت دارد. این گزینه از تطبیق الگوی سبک شل پشتیبانی می‌کند. هنگامی که این گزینه بیش از یک بار مشخص شود، نتایج با OR منطقی ترکیب می‌شوند؛ یعنی همه دستگاه‌هایی که هر یک از NAME های مشخص‌شده را دارند راه‌اندازی می‌شوند.

--name-match=NAME

راه‌اندازی رویدادها برای دستگاه‌های دارای مسیر دستگاه منطبق. هنگامی که این گزینه بیش از یک بار مشخص شود، نتایج با OR منطقی ترکیب می‌شوند؛ یعنی تمام دستگاه‌های مشخص‌شده راه‌اندازی می‌شوند.

در نسخه 218 اضافه شد.

-b, --parent-match=SYSPATH

راه‌اندازی رویدادها برای تمام فرزندان یک دستگاه داده‌شده. هنگامی که این گزینه بیش از یک بار مشخص شود، نتایج با OR منطقی ترکیب می‌شوند؛ یعنی تمام فرزندان هر دستگاه مشخص‌شده راه‌اندازی می‌شوند.

--initialized-match, --initialized-nomatch

هنگامی که --initialized-match مشخص شود، رویدادها را برای دستگاه‌هایی که قبلاً توسط systemd-udevd مقداردهی اولیه شده‌اند راه‌اندازی کرده و از دستگاه‌هایی که هنوز مقداردهی اولیه نشده‌اند صرف‌نظر می‌کند.

هنگامی که --initialized-nomatch مشخص شود، رویدادها را برای دستگاه‌هایی که هنوز توسط systemd-udevd مقداردهی اولیه نشده‌اند راه‌اندازی کرده و از دستگاه‌هایی که قبلاً مقداردهی اولیه شده‌اند صرف‌نظر می‌کند.

به طور معمول، ضروری است برنامه‌هایی که قصد استفاده از چنین تطبیقی را دارند، مطمئن شوند که یک قاعده مناسب udev نصب شده است که حداقل یک ویژگی را روی دستگاه‌های مورد تطبیق تنظیم می‌کند. برای جزئیات بیشتر به بخش «دستگاه‌های مقداردهی اولیه شده» در زیر نیز مراجعه کنید.


هشدار
--initialized-nomatch می‌تواند در مقایسه با راه‌اندازی مجدد تمام دستگاه‌های سیستم، زمان قابل توجهی را صرفه‌جویی کند و مثلاً برای بهینه‌سازی زمان بوت استفاده شود. با این حال، استفاده از این گزینه در توالی بوت به طور کلی ایمن نیست. به ویژه، هنگامی که قوانین udev برای یک دستگاه به دستگاه‌های والد آن وابسته باشد (مانند کلیدهای "ATTRS" یا "IMPORT{parent}"، برای جزئیات بیشتر به udev(7) مراجعه کنید)، وضعیت نهایی دستگاه با این گزینه به راحتی ناپایدار می‌شود.
در نسخه 251 اضافه شد.

-w, --settle

علاوه بر راه‌اندازی رویدادها، منتظر اتمام آن رویدادها نیز می‌ماند. توجه داشته باشید که این با فراخوانی udevadm settle متفاوت است. دستور udevadm settle منتظر اتمام تمام رویدادها می‌ماند. این گزینه فقط منتظر اتمام رویدادهایی می‌ماند که توسط همین فرمان راه‌اندازی شده‌اند.

در نسخه 238 اضافه شد.

--uuid

رویدادهای ساختگی (synthetic) دستگاه را راه‌اندازی کرده و یک شناسه UUID تصادفی به هر کدام اختصاص می‌دهد. این UUIDها در خروجی استاندارد چاپ می‌شوند (یک خط برای هر رویداد). این UUIDها در بلوک محیط uevent (در ویژگی "SYNTH_UUID=" ) گنجانده شده و می‌توان از آن‌ها برای رهگیری تحویل رویدادهای تولیدشده استفاده کرد.

در نسخه 249 اضافه شد.

--wait-daemon[=SECONDS]

پیش از راه‌اندازی ueventها، منتظر مقداردهی اولیه دیمن systemd-udevd می‌ماند. به صورت اختیاری مقدار مهلت زمانی (timeout) را می‌پذیرد. مهلت زمانی پیش‌فرض ۵ ثانیه است. این معادل فراخوانی udevadm control --ping قبل از udevadm trigger است.

در نسخه 241 اضافه شد.

-h, --help

نمایش یک متن راهنمای کوتاه و خروج.

علاوه بر این، می‌توان از آرگومان‌های مکانی اختیاری برای تعیین نام دستگاه‌ها یا مسیرهای sys استفاده کرد. آن‌ها باید به ترتیب با /dev/ یا /sys/ شروع شوند.

صف رویدادهای udev را نظارت کرده و در صورت رسیدگی به تمام رویدادهای جاری، خارج می‌شود.

-t, --timeout=SECONDS

حداکثر تعداد ثانیه‌ها برای انتظار خالی شدن صف رویدادها. مقدار پیش‌فرض ۱۲۰ ثانیه است. مقدار 0 خالی بودن صف را بررسی کرده و همیشه فوراً بازمی‌گردد. یک مقدار غیر صفر در صورتی که صف پیش از رسیدن به مهلت زمانی خالی شود کد خروج 0 و در غیر این صورت مقدار غیر صفر بازمی‌گرداند.

-E, --exit-if-exists=FILE

در صورت وجود پرونده، توقف انتظار.

-h, --help

نمایش یک متن راهنمای کوتاه و خروج.

برای اطلاعات بیشتر به systemd-udev-settle.service(8) مراجعه کنید.

تغییر وضعیت داخلی دیمن در حال اجرای udev.

-e, --exit

ارسال سیگنال به systemd-udevd و انتظار برای خروج آن. پس از این گزینه هیچ گزینه‌ای به جز --timeout نمی‌تواند مشخص شود. توجه داشته باشید که systemd-udevd.service شامل Restart=always است و در نتیجه، این گزینه باعث راه‌اندازی مجدد (restart) دیمن systemd-udevd می‌شود. اگر می‌خواهید systemd-udevd.service را متوقف کنید، لطفاً از دستور زیر استفاده نمایید:
systemctl stop systemd-udevd-control.socket systemd-udevd-kernel.socket systemd-udevd.service

-l, --log-level=value

تنظیم سطح گزارش‌گیری (log level) داخلی systemd-udevd. مقادیر مجاز عبارتند از اولویت‌های عددی syslog یا معادل‌های متنی آن‌ها: emerg، alert، crit، err، warning، notice، info و debug.

-s, --stop-exec-queue

ارسال سیگنال به systemd-udevd برای توقف اجرای رویدادهای جدید. رویدادهای ورودی در صف قرار خواهند گرفت.

-S, --start-exec-queue

ارسال سیگنال به systemd-udevd برای فعال‌سازی اجرای رویدادها.

-R, --reload

ارسال سیگنال به systemd-udevd برای بارگذاری مجدد پرونده‌های قوانین و سایر پایگاه‌های داده مانند شاخص ماژول‌های هسته. بارگذاری مجدد قوانین و پایگاه‌های داده هیچ تغییری روی دستگاه‌های از پیش موجود اعمال نمی‌کند؛ پیکربندی جدید تنها برای رویدادهای جدید اعمال خواهد شد.

-p, --property=KEY=value

تنظیم یک ویژگی سراسری برای همه رویدادها.

-m, --children-max=value

تنظیم حداکثر تعداد رویدادهایی که systemd-udevd به طور همزمان پردازش خواهد کرد. هنگامی که 0 مشخص شود، حداکثر مقدار بر اساس منابع سیستم تعیین می‌شود.

--ping

ارسال یک پیام پینگ به systemd-udevd و انتظار برای پاسخ. این ممکن است برای بررسی در حال اجرا بودن دیمن systemd-udevd مفید باشد.

در نسخه 241 اضافه شد.

-t, --timeout=seconds

حداکثر تعداد ثانیه‌ها برای انتظار دریافت پاسخ از systemd-udevd.

--load-credentials

هنگام تعیین، اطلاعات اعتباری (credentials) زیر در صورت ارسال استفاده می‌شوند:

udev.conf.*

این اطلاعات اعتباری باید شامل داده‌های پیکربندی معتبر udev.conf(5) باشند. از هر اطلاعات اعتباری منطبق یک پرونده جداگانه ایجاد می‌شود. مثال: اطلاعات اعتباری ارسال‌شده udev.conf.50-foobar در پرونده پیکربندی /run/udev/udev.conf.d/50-foobar.conf کپی خواهد شد.

در نسخه 256 اضافه شد.

udev.rules.*

این اطلاعات اعتباری باید شامل قوانین معتبر udev(7) باشند. از هر اطلاعات اعتباری منطبق یک پرونده جداگانه ایجاد می‌شود. مثال: اطلاعات اعتباری ارسال‌شده udev.rules.50-foobar در پرونده پیکربندی /run/udev/rules.d/50-foobar.rules کپی خواهد شد.

در نسخه 256 اضافه شد.

توجه داشته باشید که این گزینه مستلزم گزینه --reload نیست. بنابراین، اگر systemd-udevd از قبل در حال اجرا است، لطفاً گزینه --reload را نیز مشخص کنید تا پرونده‌های قوانین udev کپی‌شده توسط systemd-udevd مورد استفاده قرار گیرند.

در نسخه 256 اضافه شد.

-h, --help

نمایش یک متن راهنمای کوتاه و خروج.

به ueventهای هسته و رویدادهای ارسال‌شده توسط یک قاعده udev گوش می‌دهد و devpath رویداد را در کنسول چاپ می‌کند. می‌توان از آن برای تحلیل زمان‌بندی رویدادها با مقایسه برچسب‌های زمانی uevent هسته و رویداد udev استفاده کرد.

-k, --kernel

چاپ ueventهای هسته.

-u, --udev

چاپ رویداد udev پس از پردازش قوانین.

-p, --property

همچنین چاپ ویژگی‌های رویداد.

-s, --subsystem-match=string[/string]

پالایش ueventهای هسته و رویدادهای udev بر اساس زیرسیستم[/نوع‌دستگاه]. تنها رویدادهای دارای مقدار زیرسیستم منطبق عبور داده می‌شوند. هنگامی که این گزینه بیش از یک بار مشخص شود، نتایج با OR منطقی ترکیب می‌شوند؛ یعنی تمام دستگاه‌های موجود در زیرسیستم‌های مشخص‌شده نظارت می‌شوند.

-t, --tag-match=string

پالایش رویدادهای udev بر اساس برچسب (tag). تنها رویدادهای udev که دارای برچسب داده‌شده هستند عبور داده می‌شوند. هنگامی که این گزینه بیش از یک بار مشخص شود، نتایج با OR منطقی ترکیب می‌شوند؛ یعنی دستگاه‌هایی که یکی از برچسب‌های مشخص‌شده را دارند نظارت می‌شوند.

-h, --help

نمایش یک متن راهنمای کوتاه و خروج.

شبیه‌سازی اجرای رویداد udev برای دستگاه داده‌شده و چاپ خروجی اشکال‌زدایی.

-a, --action=ACTION

نوع رویدادی که باید شبیه‌سازی شود. کنش‌های ممکن عبارتند از: "add"، "remove"، "change"، "move"، "online"، "offline"، "bind" و "unbind". همچنین می‌توان از مقدار ویژه "help" برای فهرست کردن کنش‌های ممکن استفاده کرد. مقدار پیش‌فرض "add" است.

-N, --resolve-names=early|late|never

مشخص می‌کند که چه زمانی udevadm باید نام‌های کاربران و گروه‌ها را حل‌وفصل (resolve) کند. هنگامی که روی early (پیش‌فرض) تنظیم شود، نام‌ها هنگام تجزیه قوانین حل‌وفصل می‌شوند. هنگامی که روی late تنظیم شود، نام‌ها برای هر رویداد حل‌وفصل می‌شوند. هنگامی که روی never تنظیم شود، نام‌ها هرگز حل‌وفصل نخواهند شد و مالکیت تمام دستگاه‌ها در اختیار کاربر root خواهد بود.

در نسخه 209 اضافه شد.

-h, --help

نمایش یک متن راهنمای کوتاه و خروج.

اجرای یک فرمان توکار (built-in) COMMAND برای دستگاه DEVPATH، و چاپ خروجی اشکال‌زدایی.

-a, --action=ACTION

نوع رویدادی که باید شبیه‌سازی شود. کنش‌های ممکن عبارتند از: "add"، "remove"، "change"، "move"، "online"، "offline"، "bind" و "unbind". همچنین می‌توان از مقدار ویژه "help" برای فهرست کردن کنش‌های ممکن استفاده کرد. مقدار پیش‌فرض "add" است.

در نسخه 250 اضافه شد.

-h, --help

نمایش یک متن راهنمای کوتاه و خروج.

--version

نمایش رشته کوتاه نسخه و خروج.

بررسی درستی نحوی، معنایی و سبک‌شناختی پرونده‌های قوانین udev.

می‌توان از آرگومان‌های مکانی برای مشخص کردن یک یا چند پرونده جهت بررسی استفاده کرد. اگر هیچ پرونده‌ای مشخص نشود، قوانین udev از پرونده‌های واقع در همان دایرکتوری‌های udev/rules.d که توسط دیمن udev پردازش می‌شوند خوانده خواهند شد.

وضعیت خروج برابر 0 خواهد بود اگر تمام پرونده‌های قوانین udev مشخص‌شده از نظر نحوی، معنایی و سبک‌شناختی درست باشند، و در غیر این صورت یک کد خطای غیر صفر بازگردانده می‌شود.

-N, --resolve-names=early|never

مشخص می‌کند که چه زمانی udevadm باید نام‌های کاربران و گروه‌ها را حل‌وفصل کند. هنگامی که روی early (پیش‌فرض) تنظیم شود، نام‌ها هنگام تجزیه قوانین حل‌وفصل می‌شوند. هنگامی که روی never تنظیم شود، نام‌ها هرگز حل‌وفصل نخواهند شد.

در نسخه 254 اضافه شد.

--root=PATH

هنگام جستجوی پرونده‌های قوانین udev واقع در دایرکتوری‌های udev/rules.d، روی پرونده‌های زیر مسیر ریشه مشخص‌شده PATH عملیات را انجام می‌دهد.

در نسخه 254 اضافه شد.

--no-summary

خلاصه را نشان نده.

در نسخه 254 اضافه شد.

--no-style

نادیده گرفتن مشکلات سبک نگارش. هنگام تعیین، حتی اگر مشکلات سبکی در پرونده‌های قوانین udev یافت شود، در صورتی که خطای نحوی یا معنایی وجود نداشته باشد وضعیت خروج 0 خواهد بود.

در نسخه 254 اضافه شد.

-h, --help

نمایش یک متن راهنمای کوتاه و خروج.

انتظار برای ایجاد و مقداردهی اولیه شدن دستگاه‌ها یا پیوندهای نمادین دستگاه توسط systemd-udevd. هر مسیر دستگاه باید با "/dev/" یا "/sys/" شروع شود، به عنوان مثال: "/dev/sda"، "/dev/disk/by-path/pci-0000:3c:00.0-nvme-1-part1"، "/sys/devices/pci0000:00/0000:00:1f.6/net/eth0" یا "/sys/class/net/eth0". این دستور می‌تواند چندین دستگاه را بپذیرد. این ویژگی ممکن است برای انتظار جهت پردازش دستگاه‌ها توسط systemd-udevd پس از اقداماتی نظیر پارتیشن‌بندی یا قالب‌بندی (فرمت) دستگاه‌ها مفید باشد.

-t, --timeout=SECONDS

حداکثر تعداد ثانیه‌ها برای انتظار ایجاد، مقداردهی اولیه یا حذف دستگاه‌ها یا پیوندهای نمادین دستگاه مشخص‌شده. مقدار پیش‌فرض "infinity" (بی‌نهایت) است.

در نسخه 251 اضافه شد.

--initialized=BOOL

بررسی اینکه آیا systemd-udevd دستگاه‌ها را مقداردهی اولیه کرده است یا خیر. مقدار پیش‌فرض true است. در صورت تعیین false، این فرمان تنها وجود دستگاه‌های مشخص‌شده را بررسی می‌کند. اگر هیچ قاعده udev برای دستگاه‌های مشخص‌شده وجود ندارد، این تنظیم را روی false قرار دهید، زیرا در این حالت دستگاه‌ها هرگز به عنوان مقداردهی اولیه شده در نظر گرفته نمی‌شوند. برای جزئیات بیشتر به بخش «دستگاه‌های مقداردهی اولیه شده» در زیر مراجعه کنید.

در نسخه 251 اضافه شد.

--removed

در صورت تعیین، این فرمان به جای ایجاد یا مقداردهی اولیه، منتظر حذف دستگاه‌ها می‌ماند. اگر این گزینه مشخص شود، --initialized= نادیده گرفته خواهد شد.

در نسخه 251 اضافه شد.

--settle

در صورت تعیین، همچنین صف رویدادهای udev را نظارت کرده و منتظر پردازش تمام رویدادهای موجود در صف توسط systemd-udevd می‌ماند.

در نسخه 251 اضافه شد.

-h, --help

نمایش یک متن راهنمای کوتاه و خروج.

udevadm lock مطابق با سند Locking Block Device Access[2] یک قفل انحصاری (مشورتی) روی یک دستگاه بلوکی (یا تمام دستگاه‌های مشخص‌شده) می‌گیرد و برنامه‌ای را با قفل‌های گرفته‌شده اجرا می‌کند. هنگامی که برنامه اجراشده خارج می‌شود، قفل‌ها به طور خودکار آزاد می‌شوند و مقدار بازگشتی آن به عنوان کد خروج udevadm lock منتقل می‌گردد.

این ابزار به ویژه برای اطمینان از اینکه systemd-udevd.service(8) در حین اعمال تغییرات روی یک دستگاه بلوکی (به عنوان مثال ایجاد پارتیشن‌ها یا قالب‌بندی سیستم‌های پرونده) آن را کاوش (probe) نمی‌کند، مفید است. توجه داشته باشید که بسیاری از ابزارهایی که با دستگاه‌های بلوکی تعامل دارند، به صورت بومی از گرفتن قفل‌های مربوطه پشتیبانی می‌کنند؛ برای مثال به سوییچ --lock در sfdisk(8) مراجعه کنید.

این فرمان انتظار دارد حداقل یک دستگاه بلوکی از طریق --device= یا --backing= مشخص شود، و یک خط فرمان برای اجرا به عنوان آرگومان دریافت کند.

--device=DEVICE, -d DEVICE

مسیری به گره دستگاهِ دستگاه مورد نظر برای قفل کردن را می‌پذیرد. این سوییچ را می‌توان چندین بار (و در ترکیب با --backing=) برای قفل کردن چندین دستگاه استفاده کرد. اگر گره دستگاه یک پارتیشن مشخص شود، دستگاه بلوکی «کامل» دربرگیرنده آن به طور خودکار طبق مشخصات تعیین شده و برای قفل استفاده می‌شود. اگر چندین دستگاه مشخص شوند، موارد تکراری حذف شده، بر اساس شماره اصلی/فرعی گره‌های دستگاه مرتب می‌شوند و سپس به ترتیب قفل می‌گردند.

این سوییچ باید حداقل یک بار برای مشخص کردن حداقل یک دستگاه جهت قفل کردن استفاده شود. (همچنین می‌توانید به عنوان جایگزین از --backing= استفاده کنید، به زیر مراجعه نمایید.)

در نسخه 251 اضافه شد.

--backing=PATH, -b PATH

اگر مسیری به یک گره دستگاه مشخص شود، عملکردی یکسان با --device= دارد. با این حال، این سوییچ می‌تواند به عنوان جایگزین، مسیری به یک پرونده یا دایرکتوری عادی را بپذیرد که در این صورت، دستگاه بلوکی سیستم پرونده‌ای که پرونده/دایرکتوری در آن قرار دارد به طور خودکار تعیین شده و به گونه‌ای استفاده می‌شود که گویی با --device= مشخص شده است.

در نسخه 251 اضافه شد.

--timeout=SECS, -t SECS

مشخص می‌کند حداکثر چه مدت منتظر بماند تا تمام قفل‌ها گرفته شوند. مقداری بر حسب ثانیه یا واحدهای زمانی پشتیبانی‌شده معمول را می‌پذیرد، به systemd.time(7) مراجعه کنید. اگر صفر تعیین شود، تلاش برای قفل کردن انجام می‌گیرد و در صورت عدم موفقیت، فراخوانی بلافاصله با شکست مواجه می‌شود. اگر به صورت "infinity" (پیش‌فرض) ارسال شود، فراخوانی به طور نامحدود تا زمان به دست آوردن قفل منتظر می‌ماند. اگر قفل در زمان مشخص‌شده گرفته نشود، فرمان تعیین‌شده اجرا نخواهد شد و فراخوانی با شکست مواجه می‌شود.

در نسخه 251 اضافه شد.

--print, -p

به جای قفل کردن دستگاه‌های مشخص‌شده و اجرای یک فرمان، صرفاً مسیرهای دستگاهی که قفل خواهند شد را چاپ کرده و هیچ فرمانی را اجرا نمی‌کند. این فرمان برای تعیین دستگاه بلوکی «کامل» در حالتی که یک دستگاه بلوکی پارتیشن مشخص شده است مفید است. دستگاه‌ها بر اساس شماره اصلی گره دستگاه به عنوان کلید مرتب‌سازی اولیه و شماره فرعی به عنوان کلید مرتب‌سازی ثانویه مرتب می‌شوند (یعنی به ترتیبی که قفل می‌شدند نمایش داده می‌شوند). توجه داشته باشید که در صورتی که سوییچ‌های --device= و --backing= به دستگاه‌های «کامل» یکسانی اشاره کنند، تعداد خطوط چاپ‌شده در اینجا می‌تواند کمتر از تعداد سوییچ‌های مشخص‌شده باشد.

در نسخه 251 اضافه شد.

-h, --help

نمایش یک متن راهنمای کوتاه و خروج.

دستگاه‌های مقداردهی اولیه شده دستگاه‌هایی هستند که حداقل یک قاعده udev برای آن‌ها اجرای خود را به پایان رسانده است – برای هر کنشی به جز "remove" — که یک ویژگی یا تنظیم دیگر دستگاه را تعیین کرده باشد (و در نتیجه دارای یک مدخل در پایگاه داده دستگاه udev باشد). اگر یک کنش "remove" برای دستگاه‌ها مشاهده شود (که مدخل آن‌ها را در پایگاه داده دستگاه udev حذف می‌کند)، دستگاه‌ها دیگر به عنوان مقداردهی اولیه شده در نظر گرفته نمی‌شوند. توجه داشته باشید دستگاه‌هایی که هیچ قاعده udev ندارند هرگز به عنوان مقداردهی اولیه شده در نظر گرفته نمی‌شوند، اما ممکن است همچنان از طریق sd-device API (یا موارد مشابه) اعلام شوند.

مثال ۱. قالب‌بندی (فرمت) یک سیستم پرونده

گرفتن قفل روی دستگاه بلوکی پشتیبان هنگام ایجاد یک سیستم پرونده، برای اطمینان از اینکه systemd-udevd پیش از نوشته شدن کامل ابربلوک (superblock) جدید، آن را کاوش یا اعلام نمی‌کند:

# udevadm lock --device=/dev/sda1 mkfs.ext4 /dev/sda1

مثال ۲. قالب‌بندی یک سیستم پرونده RAID

مشابه قبل، اما گرفتن قفل روی چندین دستگاه به طور همزمان:

# udevadm lock --device=/dev/sda1 --device=/dev/sdb1 mkfs.btrfs /dev/sda1 /dev/sdb1

مثال ۳. کپی کردن یک سیستم پرونده

گرفتن قفل روی دستگاه بلوکی پشتیبان هنگام کپی کردن یک تصویر سیستم پرونده آماده، برای اطمینان از اینکه systemd-udevd پیش از نوشته شدن کامل ابربلوک جدید، آن را کاوش یا اعلام نمی‌کند:

# udevadm lock -d /dev/sda1 dd if=fs.raw of=/dev/sda1

udev(7), systemd-udevd.service(8)

1.
jq
2.
Locking Block Device Access
systemd 257.13