Como desligar o computador após o término do Xsession?

1

Estou fazendo um computador como uma máquina de arcade com um jogo acadêmico. Estou usando o Xsession para substituir a área de trabalho por um aplicativo. Está funcionando bem. Mas quando saio do jogo, ele retorna para a tela de login do LightDM. Mas eu desejo desligar em vez disso de volta ao LightDM. É possível fazer isso?

Sessão personalizada definida pelo usuário:

[Desktop Entry]
Encoding=UTF-8
Name=RacingGameX
Comment=Just the game!
Exec=/usr/share/xsessions/gameBash.sh
Type=Application

Script Bash:

xscreensaver -nosplash &
xrandr -r 60
exec /usr/bin/RacingGameX/RacingGameXExecutable
xrandr -r 75
sleep 5
sudo shutdown now # <- that's not working

Obrigado pela ajuda!

    
por ulrich 17.02.2015 / 20:42

2 respostas

1

A sintaxe para shutdown da linha de comando é

sudo shutdown -P now ## for system POWEROFF
sudo shutdown -h now ## for system HALT or POWEROFF

Se isso não funcionar, também podemos realizar um desligamento forçado

sudo poweroff --force

No caso de iniciarmos o script a partir de uma sessão de usuário (como foi o caso em uma sessão personalizada), podemos permitir que os usuários desliguem sem privilégios de root (não use sudo em seu script!) ou sigam respostas para perguntas abaixo para desligar sem privilégios de root de uma sessão de usuário:

por Takkat 17.02.2015 / 22:06
1

Primeiramente, agradeço aos membros Takkat e David Foerster pela ajuda. :)

A solução que encontrei:

Se você tiver problemas como este post, uma solução é obter o consolekit e inserir o seguinte código no seu script bash para desligar o sistema:

/usr/bin/dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop

O script bash será:

xscreensaver -nosplash &
xrandr -r 60
/usr/bin/RacingGameX/RacingGameXExecutable
xrandr -r 75
sleep 5
/usr/bin/dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
    
por ulrich 18.02.2015 / 13:39