Como posso sair da GUI usando o CLI?

37

Eu escolhi um Openbox DE no momento do login e o sistema demorou a carregar o DE. Então eu mudei para CLI ( Ctrl + Alt + F1 ) e reiniciei meu sistema (mas eu queria sair da GUI e não reiniciar o todo sistema).

A minha pergunta é, posso emitir algum comando no CLI para me desconectar da GUI para que eu possa selecionar diferentes DE. (Eu não quero reiniciar meu sistema toda vez que o DE trava).

$ DISPLAY=:0 gnome-session-quit --force

** (gnome-session-quit:3144): WARNING **: Failed to call logout: The name org.gnome.SessionManager was not provided by any .service files
    
por Ankit 26.08.2012 / 14:38

8 respostas

39

Para finalizar todos os processos do usuário e ser enviado de volta para a tela de login, você pode usar:

kill -9 -1

Não o execute como root, por razões discutidas aqui .

    
por mblasco 27.08.2012 / 02:50
16

Isso pode ser feito usando o comando gnome-session-quit . Ele precisa da opção --force para suprimir a caixa de diálogo de confirmação que apareceria sem ela.

Ao contrário dos aplicativos executados a partir de um emulador de terminal X, encerrar uma sessão a partir de um TTY requer que você anexe a variável DISPLAY para indicar qual exibição X está executando a sessão. Por isso:

DISPLAY=:0 gnome-session-quit --force

assumindo que você está executando o GNOME em: 0, que é o caso em situações normais.

  • No Ubuntu 12.04LTS executando o GNOME, o comando

    "DISPLAY=:0 gnome-session-quit --logout --no-prompt" 
    

    funciona. O argumento "--force" não existe no nível de atualização atual]

por Cumulus007 26.08.2012 / 16:31
6

Por favor, siga sugestão do takkat . O padrão é Ctrl + Alt + Backspace .

Você também pode executar:

$ sudo service lightdm restart
    
por terdon 26.08.2012 / 18:44
3

Outra maneira,

sudo pkill -u NameOftheUser

ou

sudo pkill x

que mata todos os usuários.

    
por Suhaib 03.04.2013 / 18:12
1

O problema real é que as variáveis ​​da sessão DBUS devem ser configuradas e corresponder à sessão que você está tentando controlar.

Eu criei este script que define as variáveis ​​de sessão DBUS do ambiente gnome-session, caso você queira fazer logout de outros usuários / sessões:

Como reiniciar o Gnome-Shell a partir da linha de comando

function logout() {
    local USERNAME
    export USERNAMES=( ) 
    while [ -n "" ]; do case "" in
        -* ) break ;;
        *) USERNAMES+=( "" ); shift ;;
    esac; done

    for USERNAME in "${USERNAMES[@]}"; do
        local SESSION_PID=$(pgrep -fu "$USERNAME" gnome-session|head -1)
        if [ -n "$SESSION_PID" ]; then
            (
                sudo -u "$USERNAME" cat "/proc/$SESSION_PID/environ" | xargs -0 -n 1 echo export
                echo "gnome-session-quit --logout $@"
            ) | sudo -u "$USERNAME" sh -;
        fi
    done
}
    
por sehe 21.01.2017 / 14:29
0

Se você estiver em uma sessão xubuntu ou similar, deve usar o comando xfce4-session-logout insted dos comandos gnome session, é por isso que você vê avisos

    
por Sergio Abreu 04.12.2016 / 14:14
0

Isto é o que funciona melhor para mim (com xfce, lightdm e ssh):

$ DISPLAY=:0.0 xfce4-session-logout --logout

Ou

$ sudo service lightdm restart
    
por pascalv 02.05.2018 / 11:46
-2

Você pode usar o comando killall gnome-session para efetuar logout. Isso funcionará para todas as sessões do GNOME e se eu me lembrar corretamente de todas as relacionadas ao GNOME. Leva você de volta ao LightDM para que você possa selecionar um novo DE ou um novo usuário. :)

    
por Ryan McClure 26.08.2012 / 16:22