این دستور gdbus است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
gdbus - ابزاری برای کار با اشیاء D-Bus
خلاصه
gdbus درون نگری [--سیستم | --جلسه | --نشانی نشانی] --dest bus_name
-- شی - مسیر /path/to/object [--xml] [--recurse] [--only-properties]
gdbus مانیتور [--سیستم | --جلسه | --نشانی نشانی] --dest bus_name
[--object-path /path/to/object]
gdbus فراخوانی [--سیستم | --جلسه | --نشانی نشانی] --dest bus_name
-- شی - مسیر /path/to/object --روش org.project.InterfaceName.MethodName
[--تایم اوت ثانیه] ARG1 ARG2...
gdbus انتشار [--سیستم | --جلسه | --نشانی نشانی] --object-path /path/to/object
--علامت org.project.InterfaceName.SignalName [--دسترس unique_bus_name] ARG1 ARG2...
gdbus کمک
شرح
gdbus یک ابزار ساده برای کار با اشیاء D-Bus است.
دستورات
درون نگری
رابط ها و مقادیر ویژگی را برای یک شی از راه دور چاپ می کند. برای این کار،
مالک شی باید org.freedesktop.DBus.Introspectable را پیاده سازی کند
رابط. اگر --xml از گزینه استفاده می شود، XML درون نگری برگشتی چاپ می شود،
در غیر این صورت یک نمایش زیبای تجزیه شده چاپ می شود. در -- بازگشت می توان از گزینه استفاده کرد
درون نگری کودکان (و فرزندانشان و غیره) و --فقط-خواص انتخاب
می توان از آن فقط برای چاپ رابط های با ویژگی ها استفاده کرد.
مانیتور
یک یا همه اشیاء متعلق به مالک را نظارت می کند bus_name.
صدا
یک متد را روی یک شی از راه دور فراخوانی می کند. هر آرگومان برای ارسال به متد باید باشد
به عنوان سریالی مشخص شده است GVariant با این تفاوت که رشته ها به نقل قول های واضح نیاز ندارند.
مقادیر برگشتی به صورت سریالی چاپ می شوند GVariant ارزش ها.
بیرون ریختن
سیگنالی را منتشر می کند. هر آرگومان برای گنجاندن در سیگنال باید به صورت a مشخص شود
سریال شده GVariant با این تفاوت که رشته ها به نقل قول های واضح نیاز ندارند.
کمک
راهنما و خروج را چاپ می کند.
BASH تکمیل
gdbus با یک اسکریپت تکمیل bash برای تکمیل دستورات، مقصدها، نام اتوبوس،
مسیرهای شی و نام رابط/روش.
مثال ها
این نشان می دهد که چگونه می توان یک شی را درونی کرد - توجه داشته باشید که ارزش هر یک
ویژگی نمایش داده می شود:
$ gdbus introspect -- system \
--dest org.freedesktop.NetworkManager \
--object-path /org/freedesktop/NetworkManager/Devices/0
node /org/freedesktop/NetworkManager/Devices/0 {
رابط org.freedesktop.DBus.Introspectable {
مواد و روش ها:
دروننگری (دادههای خروجی)؛
};
رابط org.freedesktop.DBus.Properties {
مواد و روش ها:
دریافت (in s interface,
در s propname،
خارج v مقدار)؛
تنظیم (در رابط s،
در s propname،
در مقدار v)؛
رابط GetAll(in
out a{sv} props);
};
رابط org.freedesktop.NetworkManager.Device.Wired {
سیگنال ها:
PropertiesChanged(a{sv} arg_0);
خواص:
فقط خواندنی b حامل = نادرست;
فقط خواندنی u Speed = 0;
readonly s HwAddress = '00:1D:72:88:BE:97';
};
رابط org.freedesktop.NetworkManager.Device {
مواد و روش ها:
قطع شدن()؛
سیگنال ها:
StateChanged(u arg_0,
u arg_1،
u arg_2)؛
خواص:
فقط خواندنی u DeviceType = 1;
فقط خواندنی b مدیریت شده = درست;
readwrite o Ip6Config = '/';
خواندن نوشتن o Dhcp4Config = '/';
readwrite o Ip4Config = '/';
فقط خواندنی u State = 2;
readwrite u IP4Address = 0;
فقط خواندنی u قابلیت ها = 3;
readonly s Driver = 'e1000e';
readwrite s Interface = 'eth0';
فقط خواندنی s Udi = '/sys/devices/pci0000:00/0000:00:19.0/net/eth0';
};
};
La -- بازگشت و --فقط-خواص هنگامی که می خواهید همه را بازرسی کنید، گزینه ها می توانند مفید باشند
اشیاء متعلق به یک فرآیند خاص:
$ gdbus introspect --system --dest org.freedesktop.UPower --object-path / --recurse --only-properties
گره / {
node /org {
node /org/freedesktop {
node /org/freedesktop/UPower {
رابط org.freedesktop.UPower {
خواص:
فقط خواندنی b IsDocked = true;
فقط خواندنی b LidForceSleep = false;
فقط خواندنی b LidIsPresent = false;
فقط خواندنی b LidIsClosed = false;
فقط خواندنی b OnLowBattery = false;
فقط خواندنی b OnBattery = false;
فقط خواندنی b CanHibernate = true;
فقط خواندنی b CanSuspend = true;
readonly s DaemonVersion = '0.9.10';
};
node /org/freedesktop/UPower/Policy {
};
node /org/freedesktop/UPower/Wakeups {
رابط org.freedesktop.UPower.Wakeups {
خواص:
فقط خواندنی b HasCapability = درست;
};
};
};
};
};
};
به روشی مشابه، درون نگری دستور را می توان برای یادگیری جزئیات در مورد Notify استفاده کرد
روش:
[...]
رابط org.freedesktop.Notifications {
مواد و روش ها:
GetServerInformation(out s return_name,
out s return_vendor،
out s return_version،
out s return_spec_version);
GetCapabilities (به عنوان return_caps)
CloseNotification (در شناسه u)؛
اطلاع دهید(در نام برنامه،
در شناسه تو،
در نماد s،
به طور خلاصه،
در بدن،
به عنوان اعمال،
در راهنمایی های{sv}،
در من تایم اوت،
out u return_id)؛
};
[...]
با این اطلاعات، استفاده از آن آسان است صدا دستور نمایش اعلان
$ gdbus تماس --session \
--dest org.freedesktop.Notifications \
--object-path /org/freedesktop/Notifications \
--method org.freedesktop.Notifications.Notify \
my_app_name \
42 \
gtk-dialog-info \
"خلاصه" \
"اینجا متن اعلان است" \
[] \
{} \
5000
(uint32 12,)
نظارت بر تمام اشیاء در یک سرویس:
$ مانیتور gdbus --system --dest org.freedesktop.ConsoleKit
نظارت بر سیگنال ها از تمام اشیاء متعلق به org.freedesktop.ConsoleKit
نام org.freedesktop.ConsoleKit متعلق به :1.15 است
/org/freedesktop/ConsoleKit/Session2: org.freedesktop.ConsoleKit.Session.ActiveChanged (نادرست،)
/org/freedesktop/ConsoleKit/Seat1: org.freedesktop.ConsoleKit.Seat.ActiveSessionChanged (''،)
/org/freedesktop/ConsoleKit/Session2: org.freedesktop.ConsoleKit.Session.ActiveChanged (درست،)
/org/freedesktop/ConsoleKit/Seat1: org.freedesktop.ConsoleKit.Seat.ActiveSessionChanged ('/org/freedesktop/ConsoleKit/Session2'،)
نظارت بر یک شی واحد در یک سرویس:
$ مانیتور gdbus --system --dest org.freedesktop.NetworkManager --object-path /org/freedesktop/NetworkManager/AccessPoint/4141
نظارت بر سیگنالهای شی /org/freedesktop/NetworkManager/AccessPoint/4141 متعلق به org.freedesktop.NetworkManager
نام org.freedesktop.NetworkManager متعلق به :1.5 است
/org/freedesktop/NetworkManager/AccessPoint/4141: org.freedesktop.NetworkManager.AccessPoint.PropertiesChanged ({'Strength': }،)
/org/freedesktop/NetworkManager/AccessPoint/4141: org.freedesktop.NetworkManager.AccessPoint.PropertiesChanged ({'Strength': }،)
/org/freedesktop/NetworkManager/AccessPoint/4141: org.freedesktop.NetworkManager.AccessPoint.PropertiesChanged ({'Strength': }،)
/org/freedesktop/NetworkManager/AccessPoint/4141: org.freedesktop.NetworkManager.AccessPoint.PropertiesChanged ({'Strength': }،)
انتشار سیگنال:
$ gdbus emit --session --object-path /foo --signal org.bar.Foo "['foo', 'bar', 'baz']"
ارسال سیگنال به یک فرآیند خاص:
$ gdbus emit --session --object-path /bar --signal org.bar.Bar someString --dest :1.42
از gdbus آنلاین با استفاده از خدمات onworks.net استفاده کنید