簡體   English   中英

PowerManagement.Inhibit與dbus-python一起使用,但不適用於dbus-send

[英]PowerManagement.Inhibit works with dbus-python but not dbus-send

我正在一個需要以編程方式禁止電源管理(例如暫停)的項目。 我可以通過Python完美地做到這一點:

import dbus
pm = dbus.SessionBus().get_object("org.freedesktop.PowerManagement", "/org/freedesktop/PowerManagement/Inhibit")
print(pm.HasInhibit()) # 0
inhibited = pm.Inhibit("Me", "I said so")
print(pm.HasInhibit()) # 1
pm.UnInhibit(inhibited)
print(pm.HasInhibit()) # 0

但在從命令行使用dbus-send時不可以:

$ dbus-send --print-reply --dest=org.freedesktop.PowerManagement /org/freedesktop/PowerManagement/Inhibit org.freedesktop.PowerManagement.Inhibit.HasInhibit
method return sender=:1.2 -> dest=:1.260969 reply_serial=2
  boolean false
$ dbus-send --print-reply --dest=org.freedesktop.PowerManagement /org/freedesktop/PowerManagement/Inhibit org.freedesktop.PowerManagement.Inhibit.Inhibit string:"Me" string:"I said so"
method return sender=:1.2 -> dest=:1.260972 reply_serial=2
  uint32 52
$ dbus-send --print-reply --dest=org.freedesktop.PowerManagement /org/freedesktop/PowerManagement/Inhibit org.freedesktop.PowerManagement.Inhibit.HasInhibit
method return sender=:1.2 -> dest=:1.260973 reply_serial=2
  boolean false

為什么?

當設置它的進程終止時,禁止會自動釋放。

因此,對於一鍵式命令,抑制將立即釋放。

我在Freedesktop.org上找不到規范,但是我在KDE和此頁面下進行的測試傾向於確認大多數Session Managers / Power Managers上的行為相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM