Em vez de DBUS_BUS_SESSION
, eu deveria ter usado DBUS_BUS_SYSTEM
, pois a interface org.freedesktop.UPower
não envia sinais no escopo da sessão.
Tão simples quanto isso.
Eu sou novato em dbus, então, por favor, seja paciente comigo.
Eu tenho um código a seguir: link .
É uma amostra que encontrei e mudei para se adequar ao meu caso.
A idéia geral é "interceptar" os sinais dbus de com.canonical.Unity.Panel.Service
e org.freedesktop.UPower
(principalmente o segundo - eu uso o Panel apenas como comparação). O problema é que estou recebendo sinais do Painel Unity, mas nenhum da UPower. Eu lancei dbus-monitor
no segundo terminal no mesmo tempo, então eu sei com certeza, que esses sinais voam ao redor.
Eu também testei essas interfaces uma a uma e o resultado é o mesmo - o código com a interface do Unity Panel recebe sinais que eu quero, o código com o UPower não - ele simplesmente bloqueia dbus_connection_read_write(conn, -1);
e nunca continua. / p>
Alguém pode me mostrar onde estou cometendo erros?
Em vez de DBUS_BUS_SESSION
, eu deveria ter usado DBUS_BUS_SYSTEM
, pois a interface org.freedesktop.UPower
não envia sinais no escopo da sessão.
Tão simples quanto isso.