Você pode enviar um comando de logout via dbus para o KDE, que deve (se puder) terminar a sessão.
qdbus org.kde.ksmserver /KSMServer logout 0 0 0
dbus é um sistema de mensagens que permite que aplicativos se comuniquem entre si, e o comando qdbus
é um utilitário para enviar mensagens dbus para aplicativos.
As aplicações se registram com dbus, e a parte ksmserver
do KDE é o gerenciador de sessão - ele cuida de quem está logado.
Portanto, estamos enviando uma mensagem para ksmserver
para a interface /KSMServer
e solicitando o logout. A mensagem que estamos enviando é exatamente a mesma que é enviada ao KSM quando você clica no ícone de logout em sua área de trabalho.
Os três zeros são parâmetros e podem alterar o tipo de logout que estamos fazendo:
Primeiro parâmetro:
- 0 = Não espere pela confirmação
- 1 = Aguarde a confirmação (com um tempo limite de 30 segundos)
Segundo parâmetro:
- -1 = Solicitar ação, padrão para desligamento (só faz sentido ao aguardar confirmação).
- 0 = Logout
- 1 = reiniciar
- 2 = Desligar
O terceiro parâmetro é o parâmetro "when", mas não está claro qual é o seu impacto.