2011-12-15 65 views
1

我正在使用python來確定Ubuntu上一個upstart作業的狀態。當通過python獲取dbus對象實例時傳遞一個環境變量

我最近更改了新貴作業,以便它有一個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中設置它似乎沒有辦法。

回答

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定義)

同時檢查env參數的描述爲com.ubuntu.Upstart0_6.Job.Start