通过python获取dbus对象实例时传递环境变量
Posted
技术标签:
【中文标题】通过python获取dbus对象实例时传递环境变量【英文标题】:Passing an environment variable when fetching a dbus object instance through python 【发布时间】:2012-01-21 04:28:46 【问题描述】:我正在使用 python 来确定 Ubuntu 上新贵工作的状态。
我最近更改了新贵工作,使其具有这样的实例节:instance $some_var
。正如预期的那样,我的代码不再有效。
如果我尝试:
path = upstart.GetJobByName("test", dbus_interface="com.ubuntu.Upstart0_6")
job = bus.get_object("com.ubuntu.Upstart", path)
path = job.GetInstance([], dbus_interface="com.ubuntu.Upstart0_6.Job")
它没有告诉我dbus.exceptions.DBusException: org.freedesktop.DBus.Error.InvalidArgs: Unknown parameter: some_var
我需要将 some_var 环境变量传递给 dbus 接口。我该怎么做?在 os.environ 中设置它似乎没有效果。
【问题讨论】:
【参考方案1】:我认为job.GetInstance(["some_var=some_value"])
应该可以。至少这对我来说很好:
dbus-send --print-reply --system /com/ubuntu/Upstart/jobs/tty \
--dest=com.ubuntu.Upstart \
com.ubuntu.Upstart0_6.Job.GetInstance array:string:"TTY=/dev/tty2"
(tty 服务是用instance $TTY
定义的)
还要检查com.ubuntu.Upstart0_6.Job.Start 的env
参数的描述。
【讨论】:
以上是关于通过python获取dbus对象实例时传递环境变量的主要内容,如果未能解决你的问题,请参考以下文章
如何从python将'a sv' dbus签名传递给udisks2.Mount()?