首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PowerManagement.Inhibit可以与dbus-python一起使用,但不能与dbus-send一起使用

PowerManagement.Inhibit可以与dbus-python一起使用,但不能与dbus-send一起使用
EN

Stack Overflow用户
提问于 2013-07-05 05:54:31
回答 1查看 1.4K关注 0票数 4

我在a project上工作,我需要通过编程来禁止电源管理(例如挂起)。我可以在Python中完美地做到这一点:

代码语言:javascript
复制
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时:

代码语言:javascript
复制
$ 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

为什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-03 00:22:15

当设置它的进程终止时,抑制会自动释放。

因此,对于一次性命令,禁止将被立即释放。

我在Freedesktop.org上找不到这个规范,但是我自己在KDE和this page下的测试倾向于确认这个行为在大多数会话管理器/电源管理器上都是一样的。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17478532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档