Eu aprendi que é possível criar inibidores para uma sessão GUI via dbus . No entanto, quando eu tento adicionar um inibidor, ele é imediatamente removido. Aqui está um exemplo.
Eu chamo para adicionar inibidor através deste comando (que é suposto impedir o logout de acontecer):
qdbus org.gnome.SessionManager /org/gnome/SessionManager org.gnome.SessionManager.Inhibit "x-terminal-emulator" $(xdotool getactivewindow) "TEST REASON" 1
A saída de dbus-monitor
sugere que ela seja adicionada, mas removida imediatamente.
$ dbus-monitor --profile | grep -i inhibitor
sig 1474613346.596581 156 :1.23 <none> /org/gnome/SessionManager org.gnome.SessionManager InhibitorAdded
sig 1474613346.603137 159 :1.23 <none> /org/gnome/SessionManager org.gnome.SessionManager InhibitorRemoved
Como posso solucionar isso?
Sistema em uso: Ubuntu 16.04, Unity
Tags d-bus