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 .
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
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 favor, siga sugestão do takkat . O padrão é Ctrl + Alt + Backspace .
Você também pode executar:
$ sudo service lightdm restart
Outra maneira,
sudo pkill -u NameOftheUser
ou
sudo pkill x
que mata todos os usuários.
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
}
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
Isto é o que funciona melhor para mim (com xfce, lightdm e ssh):
$ DISPLAY=:0.0 xfce4-session-logout --logout
Ou
$ sudo service lightdm restart
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. :)
Tags command-line logout openbox