通过python获取dbus对象实例时传递环境变量

时间:2011-12-15 13:17:33

标签: python environment-variables dbus upstart

我正在使用python来确定Ubuntu上的upstart作业的状态。

我最近更改了upstart作业,因此它有一个Instance节: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 个答案:

答案 0 :(得分:0)

我认为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.Startenv参数说明。