Você pode fazer algo assim:
bus = dbus.SessionBus()
bus.call_on_disconnection(your_method_to_do_stuff)
Ou você pode se conectar ao sinal NameLost
na interface org.FreeDesktop.DBus
. O primeiro não permite que você passe argumentos adicionais, e seu método só pode pegar o próprio objeto de conexão de barramento como um argumento. O último é um pouco mais complicado, mas não parece permitir a passagem em outros argumentos de sua própria vontade, e você está limitado a pegar os argumentos que o próprio sinal envia, que neste caso é uma string do barramento de mensagens. nomeie seu processo anteriormente de propriedade.
Por outro lado, se o seu processo permanecer depois disso, você deve, teoricamente, obter um SIGKILL
em algum momento.