Como terminar corretamente uma sessão do KDE a partir do shell sem privilégios de root

8

Estou acessando a máquina (OpenSuse 11 com KDE) sobre o NX.

Não consigo usar os atalhos Alt-Ctrl-Del quando capturados pelo meu sistema. O botão de logoff regular termina a sessão do NX sem terminar a sessão do KDE. Eu não posso chamar kdm restart porque não tenho privilégios de root.

Outras estimativas loucas como logout e exit também não funcionam, a primeira reclamando de não estar em um shell de login e a segunda apenas fechando o console.

Meu shell-fu é fraco, então qualquer ajuda é apreciada.

    
por kostja 01.03.2012 / 17:09

2 respostas

17

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.

    
por 02.03.2012 / 09:30
-1

Encontraram este post contendo várias formas para conseguir sair da shell. Usando skill -KILL -u 'whoami' funciona bem

    
por 01.03.2012 / 17:17