{"id":1047,"date":"2019-10-12T10:18:06","date_gmt":"2019-10-12T02:18:06","guid":{"rendered":"http:\/\/www.max-shu.com\/blog\/?p=1047"},"modified":"2019-10-12T10:20:49","modified_gmt":"2019-10-12T02:20:49","slug":"dbus%e6%80%bb%e7%ba%bf-x11%e3%80%81wayland%e7%ad%89%e6%a1%8c%e9%9d%a2%e7%8e%af%e5%a2%83%e4%b8%8b%e8%bf%9b%e7%a8%8b%e9%97%b4ipc%e9%80%9a%e4%bf%a1%e6%9c%ba%e5%88%b6","status":"publish","type":"post","link":"http:\/\/www.max-shu.com\/blog\/?p=1047","title":{"rendered":"DBus\u603b\u7ebf-X11\u3001Wayland\u7b49\u684c\u9762\u73af\u5883\u4e0b\u8fdb\u7a0b\u95f4IPC\u901a\u4fe1\u673a\u5236"},"content":{"rendered":"<div><\/div>\n<div><b>DBus\u603b\u7ebf\u63a5\u53e3\u5728shell\u4e0b\u600e\u4e48\u67e5\u770b \uff08\u4ee5\u67e5\u770b\u7f51\u53e3\u7684\u7f51\u5173\u4e3a\u4f8b\uff09 <\/b><\/div>\n<div><b>\u00a0<\/b><\/div>\n<div><b>1. \u9996\u5148\u7528ListActivatableNames\u67e5\u770b\u7cfb\u7edf\u91cc\u6709\u54ea\u4e9b\u6709\u7528\u7684\u603b\u7ebf\u8fde\u63a5\uff1a<\/b><\/div>\n<div>$ dbus-send &#8211;system &#8211;print-reply &#8211;dest=org.freedesktop.DBus \/ org.freedesktop.DBus.ListActivatableNames<\/div>\n<div>$ dbus-send &#8211;session &#8211;print-reply &#8211;dest=<span style=\"color: #ff0000;\">org.freedesktop.DBus \/ org.freedesktop.DBus.ListActivatableNames<\/span><\/div>\n<div>\u8f93\u51fa\u91cc\u9762\u6709\u4e00\u4e2a\uff1a<\/div>\n<div>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0string &#8220;org.freedesktop.NetworkManager&#8221;<\/div>\n<div><\/div>\n<div><\/div>\n<div><b>2. \u7136\u540e\u7528ListNames\u67e5\u770b\u7cfb\u7edf\u6709\u54ea\u4e9b\u8fde\u63a5\u540d\u5b57\uff08\u5982\u679c\u8fd9\u6b65\u6ca1\u6709\u663e\u793a\u800c\u4e0a\u6b65\u6709\u663e\u793a\uff0c\u5219\u8be5\u8fde\u63a5\u540d\u4ecd\u7136\u4e0d\u53ef\u7528\uff09\uff1a<\/b><\/div>\n<div>$ dbus-send &#8211;system &#8211;type=method_call &#8211;print-reply &#8211;dest=<span style=\"color: #ff0000;\">org.freedesktop.DBus \/ org.freedesktop.DBus.ListNames<\/span><\/div>\n<div>\u8f93\u51fa\u91cc\u9762\u6709\u4e00\u4e2a\uff1a<\/div>\n<div><span style=\"color: #993366;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0string &#8220;org.freedesktop.NetworkManager&#8221;<\/span><\/div>\n<div><\/div>\n<div><\/div>\n<div><b>3. \u7528Introspect\u4ece\u6839\u76ee\u5f55\u8def\u5f84\u5f00\u59cb\u67e5\u8be5\u8fde\u63a5\u540d\u5b57\u4e0b\u6709\u54ea\u4e9b\u8282\u70b9\uff1a<\/b><\/div>\n<div>$ dbus-send &#8211;system &#8211;type=method_call &#8211;print-reply &#8211;dest=<span style=\"color: #ff0000;\">org.freedesktop.NetworkManager \/ org.freedesktop.DBus.Introspectable.Introspect<\/span><\/div>\n<div>\u8f93\u51fa\uff1a<\/div>\n<div>&lt;node&gt;<\/div>\n<div>\u00a0\u00a0&lt;node name=&#8221;com&#8221;\/&gt;<\/div>\n<div><span style=\"color: #993366;\">\u00a0\u00a0&lt;node name=&#8221;org&#8221;\/&gt;<\/span><\/div>\n<div>&lt;\/node&gt;<\/div>\n<div><\/div>\n<div><\/div>\n<div><b>4. \u4ece\u6839\u76ee\u5f55\u5f00\u59cb\u4e00\u6b65\u4e00\u6b65\u5f80\u4e0b\u67e5\u770b\u5b50\u8282\u70b9\uff08\u8fd9\u91cc\u4ee5org\u8282\u70b9\u5f80\u4e0b\uff09\uff1a<\/b><\/div>\n<div>$ dbus-send &#8211;system &#8211;type=method_call &#8211;print-reply &#8211;dest=org.freedesktop.NetworkManager <span style=\"color: #ff0000;\">\/org<\/span> org.freedesktop.DBus.Introspectable.Introspect<\/div>\n<div>\u8f93\u51fa\uff1a<\/div>\n<div>&lt;node&gt;<\/div>\n<div><span style=\"color: #993366;\">\u00a0\u00a0&lt;node name=&#8221;freedesktop&#8221;\/&gt;<\/span><\/div>\n<div>&lt;\/node&gt;<\/div>\n<div>$ dbus-send &#8211;system &#8211;type=method_call &#8211;print-reply &#8211;dest=org.freedesktop.NetworkManager <span style=\"color: #ff0000;\">\/org\/freedesktop <\/span>org.freedesktop.DBus.Introspectable.Introspect<\/div>\n<div>\u8f93\u51fa\uff1a<\/div>\n<div>&lt;node&gt;<\/div>\n<div><span style=\"color: #993366;\">\u00a0\u00a0&lt;node name=&#8221;NetworkManager&#8221;\/&gt;<\/span><\/div>\n<div>&lt;\/node&gt;<\/div>\n<div>$ dbus-send &#8211;system &#8211;type=method_call &#8211;print-reply &#8211;dest=org.freedesktop.NetworkManager <span style=\"color: #ff0000;\">\/org\/freedesktop\/NetworkManager<\/span> org.freedesktop.DBus.Introspectable.Introspect<\/div>\n<div>\u8f93\u51fa\u5176\u4e2d\u4e00\u6bb5\uff1a<\/div>\n<div>\u00a0\u00a0&lt;interface name=&#8221;<span style=\"color: #993366;\">org.freedesktop.NetworkManager<\/span>&#8220;&gt;<\/div>\n<div>\u00a0\u00a0\u00a0\u00a0&lt;method name=&#8221;<span style=\"color: #993366;\">GetDeviceByIpIface<\/span>&#8220;&gt;\u00a0 <b>\u00a0<span style=\"color: #ff0000;\">\u5bf9\u5e94\u4e0b\u97625.1\u7684\u529f\u80fd\u8c03\u7528\u7684\u63a5\u53e3\u548c\u65b9\u6cd5<\/span><\/b><\/div>\n<div>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;arg name=&#8221;iface&#8221; type=&#8221;s&#8221; direction=&#8221;in&#8221;\/&gt;<\/div>\n<div>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;arg name=&#8221;device&#8221; type=&#8221;o&#8221; direction=&#8221;out&#8221;\/&gt;<\/div>\n<div>\u00a0\u00a0\u00a0\u00a0&lt;\/method&gt;<\/div>\n<div><span style=\"color: #993366;\">\u00a0\u00a0&lt;node name=&#8221;IP4Config&#8221;\/&gt;<\/span><\/div>\n<div>$ dbus-send &#8211;system &#8211;type=method_call &#8211;print-reply &#8211;dest=org.freedesktop.NetworkManager <span style=\"color: #ff0000;\">\/org\/freedesktop\/NetworkManager\/IP4Config <\/span>org.freedesktop.DBus.Introspectable.Introspect<\/div>\n<div>\u8f93\u51fa\uff1a<\/div>\n<div>&lt;node&gt;<\/div>\n<div>\u00a0\u00a0&lt;node name=&#8221;2&#8243;\/&gt;<\/div>\n<div>\u00a0\u00a0&lt;node name=&#8221;3&#8243;\/&gt;<\/div>\n<div><span style=\"color: #993366;\">\u00a0\u00a0&lt;node name=&#8221;4&#8243;\/&gt;<\/span><\/div>\n<div>\u00a0\u00a0&lt;node name=&#8221;5&#8243;\/&gt;<\/div>\n<div>\u00a0\u00a0&lt;node name=&#8221;6&#8243;\/&gt;<\/div>\n<div>\u00a0\u00a0&lt;node name=&#8221;7&#8243;\/&gt;<\/div>\n<div>\u00a0\u00a0&lt;node name=&#8221;8&#8243;\/&gt;<\/div>\n<div>&lt;\/node&gt;<\/div>\n<div>$ dbus-send &#8211;system &#8211;type=method_call &#8211;print-reply &#8211;dest=org.freedesktop.NetworkManager <span style=\"color: #ff0000;\">\/org\/freedesktop\/NetworkManager\/IP4Config\/4<\/span> org.freedesktop.DBus.Introspectable.Introspect<\/div>\n<div>\u8f93\u51fa\u5176\u4e2d\u4e00\u6bb5\uff1a<\/div>\n<div>\u00a0\u00a0&lt;interface name=&#8221;<span style=\"color: #993366;\">org.freedesktop.DBus.Properties<\/span>&#8220;&gt;<\/div>\n<div>\u00a0\u00a0\u00a0\u00a0&lt;method name=&#8221;<span style=\"color: #993366;\">Get<\/span>&#8220;&gt;\u00a0 \u00a0<strong><span style=\"color: #ff0000;\">\u5bf9\u5e94\u4e0b\u97625.2\u7684\u529f\u80fd\u8c03\u7528\u7684\u63a5\u53e3\u548c\u65b9\u6cd5<\/span><\/strong><\/div>\n<div>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;arg name=&#8221;interface&#8221; direction=&#8221;in&#8221; type=&#8221;s&#8221;\/&gt;<\/div>\n<div>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;arg name=&#8221;propname&#8221; direction=&#8221;in&#8221; type=&#8221;s&#8221;\/&gt;<\/div>\n<div>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;arg name=&#8221;value&#8221; direction=&#8221;out&#8221; type=&#8221;v&#8221;\/&gt;<\/div>\n<div>\u00a0\u00a0\u00a0\u00a0&lt;\/method&gt;<\/div>\n<div>\u00a0\u00a0&lt;interface name=&#8221;<span style=\"color: #993366;\">org.freedesktop.NetworkManager.IP4Config<\/span>&#8220;&gt;<\/div>\n<div>\u00a0\u00a0\u00a0\u00a0&lt;property name=&#8221;<span style=\"color: #993366;\">Gateway<\/span>&#8221; type=&#8221;s&#8221; access=&#8221;read&#8221;\/&gt;\u00a0 \u00a0<strong><span style=\"color: #ff0000;\">\u5bf9\u5e94\u4e0b\u97625.2\u7684\u529f\u80fd\u8c03\u7528\u7684\u4e24\u4e2a\u53c2\u6570<\/span><\/strong><\/div>\n<div><\/div>\n<div><\/div>\n<div><b>5.1 \u6839\u636e\u63a5\u53e3\u548c\u65b9\u6cd5\u8c03\u7528dbus\u529f\u80fd\uff08\u7b2c4\u6b65\u4e2d\u67e5\u5230\u7684\u63a5\u53e3\u65b9\u6cd5\uff09\uff1a<\/b><\/div>\n<div>$ dbus-send &#8211;system &#8211;type=method_call &#8211;print-reply &#8211;dest=org.freedesktop.NetworkManager <span style=\"color: #ff0000;\">\/org\/freedesktop\/NetworkManager org.freedesktop.NetworkManager.GetDeviceByIpIface string:eth0<\/span><\/div>\n<div>\u8f93\u51fa\uff1a<\/div>\n<div>method return sender=:1.2 -&gt; dest=:1.1850 reply_serial=2<\/div>\n<div>\u00a0\u00a0\u00a0object path &#8220;\/org\/freedesktop\/NetworkManager\/Devices\/2&#8221;<\/div>\n<div><\/div>\n<div><\/div>\n<div><b>5.2 \u6839\u636e\u63a5\u53e3\u548c\u5c5e\u6027\u8c03\u7528dbus\u529f\u80fd<\/b><strong>\uff08\u7b2c4\u6b65\u4e2d\u67e5\u5230\u7684\u63a5\u53e3\u65b9\u6cd5\uff09<\/strong><b>\uff1a<\/b><\/div>\n<div>$ dbus-send &#8211;system &#8211;type=method_call &#8211;print-reply &#8211;dest=org.freedesktop.NetworkManager <span style=\"color: #ff0000;\">\/org\/freedesktop\/NetworkManager\/IP4Config\/4 org.freedesktop.DBus.Properties.Get string:org.freedesktop.NetworkManager.IP4Config string:Gateway<\/span><\/div>\n<div>\u8f93\u51fa\uff1a<\/div>\n<div>method return sender=:1.2 -&gt; dest=:1.1864 reply_serial=2<\/div>\n<div>\u00a0\u00a0\u00a0variant\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0string &#8220;172.18.1.1&#8221;<\/div>\n<div><\/div>\n<div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>DBus\u603b\u7ebf\u63a5\u53e3\u5728shell\u4e0b\u600e\u4e48\u67e5\u770b \uff08\u4ee5\u67e5\u770b\u7f51\u53e3\u7684\u7f51\u5173\u4e3a\u4f8b\uff09 \u00a0 1. \u9996\u5148\u7528ListActivatabl &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15],"tags":[775,776,777,779,778,487],"class_list":["post-1047","post","type-post","status-publish","format-standard","hentry","category-linuxandroid","tag-dbus","tag-ipc","tag-rpc","tag-wayland","tag-x11","tag-487"],"views":3101,"_links":{"self":[{"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1047","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1047"}],"version-history":[{"count":4,"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1047\/revisions"}],"predecessor-version":[{"id":1052,"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1047\/revisions\/1052"}],"wp:attachment":[{"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1047"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1047"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.max-shu.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1047"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}