دستورات
زیر
پشتیبانی
میشوند:
list
نمایش
تمامی
همتایان (peers)
روی گذرگاه
بر اساس نام
سرویس
آنها.
بهطور
پیشفرض،
هر دو
نامهای
یکتا (unique) و
شناختهشده
(well-known) را نمایش
میدهد،
اما این
رفتار
میتواند
با
سوییچهای
--unique و
--acquired
تغییر کند.
در صورت عدم
تعیین
دستور، این
عملیات
پیشفرض
است.
افزوده
شده در
نگارش 209.
status [SERVICE]
اطلاعات
پردازش و
اعتبارنامههای
یک سرویس
گذرگاه (در
صورتی که با
نام یکتا یا
شناختهشدهاش
مشخص شده
باشد)، یک
پردازش (در
صورتی که با PID
عددیاش
مشخص شده
باشد)، یا
مالک
گذرگاه (در
صورت عدم
تعیین
پارامتر) را
نمایش
میدهد.
افزوده
شده در
نگارش 209.
monitor [SERVICE...]
پیامهای
در حال
مبادله را
استخراج و
نمایش
میدهد (dump
میکند). اگر
SERVICE مشخص شده
باشد،
پیامهای
ارسالی به
این همتا یا
دریافتی از
آن را که با
نام
شناختهشده
یا یکتایش
شناسانده
شده، نمایش
میدهد. در
غیر این
صورت، تمام
پیامهای
روی گذرگاه
را نمایش
میدهد.
برای پایان
دادن به
نمایش از Ctrl+C
استفاده
کنید یا با
گزینهٔ
--limit-messages=
آن را محدود
نمایید.
افزوده
شده در
نگارش 209.
capture [SERVICE...]
مشابه
monitor
است اما
خروجی را در
قالب pcapng
مینویسد
(برای
جزئیات، به
قالب فایل
ضبط PCAP نسل
بعدی (pcapng)[1]
مراجعه
کنید). حتماً
خروجی
استاندارد
را به یک
فایل یا
لوله (pipe)
هدایت کنید.
ابزارهایی
مانند
wireshark(1)
میتوانند
برای تحلیل
و مشاهده
فایلهای
حاصل
استفاده
شوند.
افزوده
شده در
نگارش 218.
tree [SERVICE...]
درخت شیء
(object tree) یک یا چند
سرویس را
نمایش
میدهد. اگر
SERVICE مشخص شده
باشد، فقط
درخت شیء
سرویسهای
مشخصشده
را نمایش
میدهد. در
غیر این
صورت، درخت
شیء تمام
سرویسهای
روی گذرگاه
را که حداقل
یک نام
شناختهشده
به دست
آوردهاند،
نمایش
میدهد.
افزوده
شده در
نگارش 218.
introspect SERVICE OBJECT
[INTERFACE]
رابطها،
متدها،
ویژگیها و
سیگنالهای
شیء
مشخصشده
(شناساییشده
با مسیر آن)
روی سرویس
مشخصشده
را نمایش
میدهد. در
صورت ارسال
آرگومان
رابط،
خروجی به
اعضای رابط
مشخصشده
محدود
میشود.
افزوده
شده در
نگارش 218.
call SERVICE OBJECT INTERFACE
METHOD [SIGNATURE [ARGUMENT...]]
یک متد
را
فراخوانی
کرده و پاسخ
را نمایش
میدهد. یک
نام سرویس،
مسیر شیء،
نام رابط و
نام متد را
میگیرد.
اگر قرار
است
پارامترهایی
به
فراخوانی
متد ارسال
شوند، یک
رشته امضا (signature
string) الزامی
است که پس از
آن
آرگومانها
که بهصورت
جداگانه در
قالب رشته
قالببندی
شدهاند
میآیند.
برای
جزئیات
قالببندی
استفادهشده،
به بخش زیر
مراجعه
کنید. برای
جلوگیری از
نمایش
دادههای
بازگرداندهشده،
از گزینهٔ
--quiet استفاده
کنید.
افزوده
شده در
نگارش 218.
emit OBJECT INTERFACE SIGNAL
[SIGNATURE [ARGUMENT...]]
یک
سیگنال
ساطع (منتشر)
میکند. یک
مسیر شیء،
نام رابط و
نام متد را
میگیرد.
اگر قرار
است
پارامترهایی
ارسال
شوند، یک
رشته امضا
الزامی است
که پس از آن
آرگومانها
که بهصورت
جداگانه در
قالب رشته
قالببندی
شدهاند
میآیند.
برای
جزئیات
قالببندی
استفادهشده،
به بخش زیر
مراجعه
کنید. برای
تعیین مقصد
سیگنال، از
گزینهٔ
--destination=
استفاده
کنید.
افزوده
شده در
نگارش 242.
wait [SERVICE] OBJECT INTERFACE
SIGNAL
منتظر یک
سیگنال
میماند. یک
مسیر شیء،
نام رابط و
نام سیگنال
را میگیرد.
برای
انتظار
برای بیش از
یک سیگنال
قبل از
خروج، از
گزینهٔ
--limit-messages=
استفاده
کنید. برای
جلوگیری از
نمایش
دادههای
بازگرداندهشده،
از گزینهٔ
--quiet استفاده
کنید. نام
سرویس را
میتوان
نادیده
گرفت، که در
این صورت
busctl
سیگنالهای
ارسالی از
هر
فرستندهای
را مطابقت
خواهد داد.
افزوده
شده در
نگارش 257.
get-property SERVICE OBJECT INTERFACE
PROPERTY...
مقدار
فعلی یک یا
چند ویژگی
شیء را
بازیابی
میکند. یک
نام سرویس،
مسیر شیء،
نام رابط و
نام ویژگی
را میگیرد.
چند ویژگی
را میتوان
بهطور
همزمان
مشخص کرد که
در این صورت
مقادیر
آنها یکی
پس از دیگری
و جداشده با
خطوط جدید
نمایش داده
میشوند.
خروجی
بهطور
پیشفرض در
قالب مختصر
است. برای
قالب خروجی
با جزئیات
بیشتر از
--verbose
استفاده
کنید.
افزوده
شده در
نگارش 218.
set-property SERVICE OBJECT INTERFACE
PROPERTY SIGNATURE ARGUMENT...
مقدار
فعلی ویژگی
یک شیء را
تنظیم
میکند. یک
نام سرویس،
مسیر شیء،
نام رابط،
نام ویژگی،
امضای
ویژگی و
بهدنبال
آن فهرستی
از
پارامترهای
قالببندیشده
بهصورت
رشته را
میگیرد.
افزوده
شده در
نگارش 218.
help
راهنمای
ساختار
نحوی
دستورات را
نمایش
میدهد.
افزوده
شده در
نگارش 209.
گزینههای
زیر
پشتیبانی
میشوند:
--address=ADDRESS
به
گذرگاه
مشخصشده
با
ADDRESS متصل
میشود،
بهجای
اینکه از
پیشفرضهای
مناسب برای
گذرگاه
سیستم یا
کاربر
استفاده
کند
(گزینههای
--system و
--user را
ببینید).
افزوده
شده در
نگارش 209.
--show-machine
هنگام
نمایش
فهرست
همتایان،
ستونی شامل
نام
کانتینرهایی
که به آنها
تعلق دارند
را نمایش
میدهد. به
systemd-machined.service(8)
مراجعه
کنید.
افزوده
شده در
نگارش 209.
--unique
هنگام
نمایش
فهرست
همتایان،
فقط
نامهای
"یکتا" (به
فرم ":
number.
number")
را نمایش
میدهد.
افزوده
شده در
نگارش 209.
--acquired
نقطهٔ
مقابل
--unique —
فقط
نامهای
"شناختهشده"
نمایش داده
میشوند.
افزوده
شده در
نگارش 209.
--activatable
هنگام
نمایش
فهرست
همتایان،
فقط
همتایانی
را نمایش
میدهد که
در واقع
هنوز فعال
نشدهاند،
اما در صورت
دسترسی
ممکن است
بهطور
خودکار
آغاز به کار
کنند.
افزوده
شده در
نگارش 209.
--match=MATCH
هنگام
نمایش
پیامهای
در حال
مبادله،
فقط
زیرمجموعهای
را که با
MATCH
مطابقت
دارد نمایش
میدهد. به
sd_bus_add_match(3) مراجعه
کنید.
افزوده
شده در
نگارش 209.
--size=
هنگامی
که همراه با
دستور
capture
استفاده
شود،
حداکثر
اندازهٔ
پیام
گذرگاه را
برای ضبط
تعیین
میکند ("snaplen").
پیشفرض 4096
بایت است.
افزوده
شده در
نگارش 218.
--list
هنگامی
که همراه با
دستور
tree
استفاده
شود، یک
فهرست تخت
از مسیرهای
اشیاء را
بهجای
درخت نمایش
میدهد.
افزوده
شده در
نگارش 218.
-q, --quiet
هنگامی
که همراه با
دستور
call
استفاده
شود، نمایش
بار دادهٔ
پیام پاسخ
را
فرومینشاند.
توجه داشته
باشید که
حتی در صورت
تعیین این
گزینه،
خطاهای
بازگرداندهشده
همچنان چاپ
میشوند و
ابزار
موفقیت یا
شکست را با
کد خروج
پردازش
نشان
میدهد.
افزوده
شده در
نگارش 218.
--verbose
هنگامی
که همراه با
دستورهای
call
یا
get-property
استفاده
شود، خروجی
را در قالبی
با جزئیات
بیشتر
نمایش
میدهد.
افزوده
شده در
نگارش 218.
--xml-interface
هنگامی
که با
فراخوانی
introspect استفاده
شود، توصیف XML
دریافت شده
از
فراخوانی D-Bus
org.freedesktop.DBus.Introspectable.Introspect را
بهجای
خروجی عادی
استخراج و
نمایش
میدهد.
افزوده
شده در
نگارش 243.
--expect-reply=BOOL
هنگامی
که همراه با
دستور
call
استفاده
شود، مشخص
میکند آیا
busctl باید
منتظر
تکمیل
فراخوانی
متد بماند،
دادههای
پاسخ متد
بازگرداندهشده
را خروجی
دهد، و
موفقیت یا
شکست را از
طریق کد
خروج
پردازش
بازگرداند
یا خیر. اگر
این مقدار
روی "no"
تنظیم شود،
فراخوانی
متد صادر
میشود اما
هیچ پاسخی
انتظار
نمیرود،
ابزار
بلافاصله
خاتمه
مییابد و
بنابراین
پاسخی قابل
نمایش
نخواهد بود
و هیچ
موفقیتی یا
شکستی از
طریق کد
خروج
بازگردانده
نمیشود.
برای صرفاً
جلوگیری از
نمایش بار
دادهٔ پیام
پاسخ، از
گزینهٔ
--quiet
در بالا
استفاده
کنید.
پیشفرض "yes"
است.
افزوده
شده در
نگارش 218.
--auto-start=BOOL
هنگامی
که همراه با
دستور
call یا
emit استفاده
شود، مشخص
میکند که
آیا
فراخوانی
متد باید
سرویس
فراخوانیشده
را بهطور
ضمنی فعال
کند، در
صورتی که
هنوز در حال
اجرا نباشد
اما برای
شروع
خودکار
پیکربندی
شده باشد.
پیشفرض "yes"
است.
افزوده
شده در
نگارش 218.
--allow-interactive-authorization=BOOL
هنگامی
که همراه با
دستور
call
استفاده
شود، مشخص
میکند که
آیا در صورت
پیکربندی
سیاست
امنیتی
برای این
منظور،
سرویسها
میتوانند
در حین
اجرای
عملیات
مجوزدهی
تعاملی را
اعمال کنند
یا خیر.
پیشفرض "yes"
است.
افزوده
شده در
نگارش 218.
--timeout=SECS
هنگامی
که همراه با
دستور
call
استفاده
شود،
حداکثر
زمان
انتظار
برای تکمیل
فراخوانی
متد را
تعیین
میکند.
هنگامی که
همراه با
دستور
monitor
استفاده
شود، از
نسخه v257،
حداکثر
زمان
انتظار
برای
پیامها را
قبل از خروج
خودکار
تعیین
میکند. اگر
واحد زمانی
مشخص نشده
باشد،
ثانیه در
نظر گرفته
میشود.
سایر
واحدهای
معمول نیز
قابل فهم
هستند (ms، us، s،
min، h، d، w، month، y).
توجه داشته
باشید در
صورتی که
گزینهٔ
--expect-reply=no
همراه با
دستور
call
استفاده
شود این
مهلت زمانی
اعمال
نخواهد شد،
زیرا ابزار
منتظر
دریافت هیچ
پیام پاسخی
نمیماند.
در صورت عدم
تعیین یا
تنظیم روی 0،
مقدار
پیشفرض "25s"
برای دستور
call در نظر
گرفته
میشود، و
برای دستور
monitor غیرفعال
است.
افزوده
شده در
نگارش 218.
--limit-messages=NUMBER, -N
NUMBER
هنگامی
که همراه با
دستور
monitor
استفاده
شود، در
صورت فعال
بودن باعث
میشود
busctl
پس از
دریافت و
چاپ تعداد
پیام
مشخصشده
خارج شود.
این در
ترکیب با
--match=، برای
انتظار
برای تعداد
رخداد
مشخصی از
پیامهای
خاص D-Bus مفید
است. در حالی
که اگر مشخص
نشده باشد
یا روی
مقدار
ویژهٔ "infinity"
تنظیم شود،
پیشفرض
ادامهٔ
نظارت بدون
محدودیت
است.
هنگامی که
همراه با
دستور wait
استفاده
شود، باعث
میشود busctl
پس از
دریافت و
چاپ تعداد
مشخصی از
سیگنالهای
DBus خارج شود.
تنظیم آن
روی مقدار
ویژهٔ "infinity"
باعث
پایداری busctl
برای
دریافت و
چاپ
پیوستهٔ
سیگنالها
بدون
محدودیت
میشود. در
صورت عدم
تعیین،
پیشفرض
خروج فوری
پس از
دریافت و
چاپ اولین
سیگنال
است.
افزوده
شده در
نگارش 257.
--augment-creds=BOOL
کنترل
میکند که
آیا
دادههای
اعتبارنامه
گزارششده
توسط
list یا
status
باید با
دادههای
حاصل از /proc/
تکمیل شوند
یا خیر.
هنگامی که
این گزینه
فعال باشد،
دادههای
نمایش داده
شده
احتمالاً
ناسازگار
هستند،
زیرا
دادههای
خواندهشده
از /proc/ ممکن
است
تازهتر از
بقیه
اطلاعات
اعتبارنامه
باشند.
پیشفرض "yes"
است.
افزوده
شده در
نگارش 218.
--watch-bind=BOOL
کنترل
میکند که
آیا قبل از
اتصال به
سوکت
گذرگاه
AF_UNIX
مشخصشده،
منتظر ظاهر
شدن آن در
سیستم فایل
بماند یا
خیر.
پیشفرض
خاموش است.
هنگامی که
فعال باشد،
ابزار
سیستم فایل
را تا زمان
ایجاد سوکت
نظارت کرده
و سپس به آن
متصل
میشود.
افزوده
شده در
نگارش 237.
--destination=SERVICE
یک نام
سرویس را
میگیرد.
هنگامی که
همراه با
دستور
emit
استفاده
شود، یک
سیگنال به
سرویس
مشخصشده
ارسال
میشود.
افزوده
شده در
نگارش 242.
--user
بهجای
مدیر
سرویسهای
سیستم، با
مدیر
سرویسهای
کاربر
فراخواننده
ارتباط
برقرار
میکند.
--system
با مدیر
سرویسهای
سیستم
ارتباط
برقرار
میکند. این
حالت
پیشفرض
ضمنی است.
-H, --host=
عملیات
را از راه
دور اجرا
میکند.
برای
اتصال، یک
نام میزبان
یا یک نام
کاربری و
نام میزبان
جداشده با
"@" را مشخص
کنید. نام
میزبان
میتواند
بهطور
اختیاری با
یک درگاه که ssh
روی آن گوش
میدهد،
جداشده با
":"، و سپس
نام یک
کانتینر،
جداشده با
"/" دنبال
شود که
مستقیماً
به یک
کانتینر
خاص روی
میزبان
مشخصشده
متصل
میشود. این
کار از SSH برای
ارتباط با
نمونهٔ
مدیر ماشین
راه دور
استفاده
میکند.
نامهای
کانتینر را
میتوان با
machinectl -H HOST
فهرست کرد.
نشانیهای IPv6
را داخل
کروشه قرار
دهید.
-M, --machine=
عملیات
را روی یک
کانتینر
محلی اجرا
میکند. نام
کانتینری
را برای
اتصال مشخص
کنید، که
بهطور
اختیاری با
یک نام
کاربری
برای اتصال
و نویسهٔ
جداکنندهٔ
"@" پیشوند
میشود. اگر
رشتهٔ
ویژهٔ ".host"
بهجای نام
کانتینر
استفاده
شود،
اتصالی به
سیستم محلی
برقرار
میشود (که
برای اتصال
به گذرگاه
کاربری یک
کاربر خاص
مفید است: "--user
--machine=lennart@.host"). اگر
نحو "@"
استفاده
نشود،
اتصال
بهعنوان
کاربر ریشه
برقرار
میشود. اگر
نحو "@"
استفاده
شود،
میتوان
سمت چپ یا
سمت راست را
نادیده
گرفت (اما نه
هر دو را) که
در این صورت
نام کاربر
محلی و ".host"
ضمنی در نظر
گرفته
میشوند.
-C, --capsule=
عملیات
را روی یک
کپسول اجرا
میکند. نام
کپسولی را
برای اتصال
مشخص کنید.
برای
جزئیات در
مورد
کپسولها
به
capsule@.service(5)
مراجعه
کنید.
افزوده
شده در
نگارش 256.
-l, --full
خروجی
دستور
list را
خلاصه
نمیکند.
افزوده
شده در
نگارش 245.
--json=MODE
خروجی را
در قالب JSON
نمایش
میدهد. یکی
از مقادیر
زیر را
میپذیرد:
"short" (برای
کوتاهترین
خروجی ممکن
بدون هیچ
فاصله یا
شکست خط
اضافی)، "pretty"
(برای نگارش
آراستهشده
از همان
خروجی،
همراه با
تورفتگی و
شکست خط) یا
"off" (برای
خاموش کردن
خروجی JSON، که
حالت
پیشفرض
است).
-j
معادل
--json=pretty در صورت
اجرا روی یک
ترمینال، و
--json=short در غیر
این صورت
است.
--no-pager
خروجی را
به یک
صفحهبند (pager)
هدایت
نمیکند.
--no-legend
راهنما
را چاپ
نمیکند،
یعنی
سرستونها
و پانوشت با
نکات
راهنما چاپ
نمیشوند.
-h, --help
یک متن
راهنمای
کوتاه را
چاپ کرده و
خارج
میشود.
--version
یک رشتهٔ
کوتاه نسخه
را چاپ کرده
و خارج
میشود.
دستورات
call و set-property یک
رشته امضا و
بهدنبال
آن فهرستی
از
پارامترهای
قالببندیشده
بهصورت
رشته را
دریافت
میکنند
(برای
جزئیات در
مورد
رشتههای
امضای D-Bus، به
فصل
سامانهٔ
انواع در
مشخصات D-Bus[2]
مراجعه
کنید). برای
انواع
ساده، هر
پارامتر پس
از امضا
باید صرفاً
مقدار
پارامتر
قالببندیشده
بهصورت
رشته باشد.
مقادیر
بولی مثبت
ممکن است
بهصورت
"true"، "yes"، "on"
یا "1"
قالببندی
شوند؛
مقادیر
بولی منفی
ممکن است
بهصورت
"false"، "no"، "off"
یا "0" تعیین
شوند. برای
آرایهها،
یک آرگومان
عددی برای
تعداد
ورودیها و
بهدنبال
آن خود
ورودیها
باید مشخص
شود. برای
مقادیر
متغیر (variants)،
امضای
محتویات و
بهدنبال
آن خود
محتویات
باید مشخص
شود. برای
دیکشنریها
و ساختارها
(structs)، محتویات
آنها باید
مستقیماً
مشخص گردد.
بهعنوان
مثال،
قالببندی
یک رشتهٔ
منفرد "jawoll"
است.
قالببندی
یک آرایهٔ
رشته با سه
ورودی "hello"،
"world" و "foobar" است.
a{sv} 3 One s Eins Two u 2 Yes b true
قالببندی
یک آرایه
دیکشنری
است که
رشتهها را
به مقادیر
متغیر
نگاشت
میکند و
شامل سه
ورودی است.
به رشتهٔ "One"
رشتهٔ "Eins"
اختصاص
داده شده
است. به
رشتهٔ "Two"
عدد صحیح
بدون علامت
۳۲ بیتی 2
اختصاص
داده شده
است. به
رشتهٔ "Yes" یک
مقدار بولی
مثبت
اختصاص
داده شده
است.
توجه
داشته
باشید که
دستورات call،
get-property، و introspect
نیز برای
دادههای
بازگرداندهشده،
خروجی را در
همین قالب
تولید
خواهند کرد.
از آنجایی
که این قالب
گاهی برای
درک آسان
بیش از حد
مختصر است،
دستورات call
و get-property در
صورت
استفاده از
گزینهٔ --verbose
میتوانند
خروجی
چندخطی با
جزئیات
بیشتری
تولید
کنند.
مثال 1. نوشتن
و خواندن یک
ویژگی
دو دستور
زیر ابتدا
یک ویژگی را
مینویسند
و سپس آن را
بازخوانی
میکنند.
ویژگی روی
شیء "/org/freedesktop/systemd1"
از سرویس
"org.freedesktop.systemd1" یافت
میشود. نام
ویژگی "LogLevel"
روی رابط
"org.freedesktop.systemd1.Manager" است.
ویژگی شامل
یک رشتهٔ
منفرد است:
# busctl set-property org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager LogLevel s debug
# busctl get-property org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager LogLevel
s "debug"
مثال 2. خروجی
مختصر و
مفصل
دو دستور
زیر
ویژگیای
را
میخوانند
که شامل
آرایهای
از رشتهها
است، و
ابتدا آن را
در قالب
مختصر و سپس
در قالب
مفصل نمایش
میدهند:
$ busctl get-property org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager Environment
as 2 "LANG=en_US.UTF-8" "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
$ busctl get-property --verbose org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager Environment
ARRAY "s" {
STRING "LANG=en_US.UTF-8";
STRING "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin";
};
مثال 3. فراخوانی
یک متد
دستور زیر
متد "StartUnit" را
روی رابط
"org.freedesktop.systemd1.Manager" از
شیء "/org/freedesktop/systemd1"
مربوط به
سرویس
"org.freedesktop.systemd1"
فراخوانی
میکند و دو
رشتهٔ "cups.service" و
"replace" را به آن
ارسال
مینماید.
در نتیجهٔ
فراخوانی
متد، یک
پارامتر
منفرد از
نوع مسیر
شیء دریافت
شده و نمایش
داده
میشود:
# busctl call org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager StartUnit ss "cups.service" "replace"
o "/org/freedesktop/systemd1/job/42684"