我正在制作一台像街机一样的带有教育游戏的计算机。我正在使用 Xsession 将桌面替换为应用程序。它工作正常。但是当我退出游戏时,它会返回到 LightDM - 登录屏幕。但我希望关闭而不是返回 LightDM。可以这样做吗?
自定义用户定义会话:
[Desktop Entry]
Encoding=UTF-8
Name=RacingGameX
Comment=Just the game!
Exec=/usr/share/xsessions/gameBash.sh
Type=Application
Bash 脚本:
xscreensaver -nosplash &
xrandr -r 60
exec /usr/bin/RacingGameX/RacingGameXExecutable
xrandr -r 75
sleep 5
sudo shutdown now # <- that's not working
谢谢您的帮助!
答案1
语法shutdown
从命令行是
sudo shutdown -P now ## for system POWEROFF
sudo shutdown -h now ## for system HALT or POWEROFF
如果这不起作用,我们也可以执行强制关机
sudo poweroff --force
如果我们从用户会话启动脚本(就像在自定义会话中的情况一样),我们可以允许用户在没有 root 权限的情况下关机(sudo
那么不要在脚本中使用!)或者按照以下问题的答案从用户会话中在没有 root 权限的情况下关机:
答案2
首先我感谢成员 Takkat 和 David Foerster 的帮助。:)
我找到的解决方案:
如果您遇到类似本文的问题,一种解决方案是获取consolekit
并在您的 bash 脚本中插入以下代码来关闭系统:
/usr/bin/dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
Bash 脚本如下:
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