当前位置: 首页>>技术教程>>正文


如何从命令行安全地关闭/重新启动/注销 KDE?

, , ,

问题描述

我不是在谈论 shutdownreboot 命令。我想从命令行启动与按下 KDE 桌面内的注销/重新启动/关闭按钮时执行的相同例程。

最佳答案

对于 KDE 5+:

qdbus org.kde.Shutdown /Shutdown logout
qdbus org.kde.Shutdown /Shutdown logoutAndReboot
qdbus org.kde.Shutdown /Shutdown logoutAndShutdown

最后一个选项指定调用哪个方法。似乎下面提到的 KDE4 选项得到了部分支持(重新启动不起作用,所以我最终使用了这些较新的方法)。

参考号:Reddit

对于 KDE 4:

请注意,此答案是在 2010 年针对 KDE 4 编写的。它可能不适用于现代系统。

qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.logout -1 -1 -1

这三个整数参数是 KWorkSpace::requestShutDownconfirmsdtypesdmode 参数。它们的值在页面顶部进行了解释。由于该页面已消失,因此以下是值(仍然存在于 cache 中)。

enum ShutdownConfirm {
  ShutdownConfirmDefault = -1,
  ShutdownConfirmNo = 0,
  ShutdownConfirmYes = 1
}

\\n

    \\n

  • ShutdownConfirmDefault:\\nObey the user’s confirmation setting.
  • \\n

  • ShutdownConfirmNo:\\nDon’t confirm, shutdown without asking.
  • \\n

  • ShutdownConfirmYes:\\nAlways confirm, ask even if the user turned it off.
  • \\n

\\n

enum ShutdownType {
  ShutdownTypeDefault = -1,
  ShutdownTypeNone = 0,
  ShutdownTypeReboot = 1,
  ShutdownTypeHalt = 2,
  ShutdownTypeLogout = 3
}

\\n

    \\n

  • ShutdownTypeDefault:\\nSelect previous action or the default if it’s the first time.
  • \\n

  • ShutdownTypeNone:\\nOnly log out.
  • \\n

  • ShutdownTypeReboot:\\nLog out and reboot the machine.
  • \\n

  • ShutdownTypeHalt:\\nLog out and halt the machine.
  • \\n

  • ShutdownTypeLogout:\\nTemporary brain damage.\\nDon’t use. Same as ShutdownTypeNone
  • \\n

\\n

enum ShutdownMode {
  ShutdownModeDefault = -1,
  ShutdownModeSchedule = 0,
  ShutdownModeTryNow = 1,
  ShutdownModeForceNow = 2,
  ShutdownModeInteractive = 3
}

\\n

    \\n

  • ShutdownModeDefault:\\nSelect previous mode or the default if it’s the first time.
  • \\n

  • ShutdownModeSchedule:\\nSchedule a shutdown (halt or reboot) for the time all active sessions have exited.
  • \\n

  • ShutdownModeTryNow:\\nShut down, if no sessions are active.\\nOtherwise do nothing.
  • \\n

  • ShutdownModeForceNow:\\nForce shutdown.\\nKill any possibly active sessions.
  • \\n

  • ShutdownModeInteractive:\\nPop up a dialog asking the user what to do if sessions are still active.
  • \\n

\\n

次佳答案

所以我尝试了 Gilles 提出的答案,但这仅适用于 KDE4。

在我的图形出现 system-update 后,我无法再注销、重新启动或关机。最终发现这个命令有效:

qdbus org.kde.ksmserver /KSMServer logout 0 0 0

我的消息来源来自这里,他们在那里对此进行了更多讨论。我不确定他还有其他选择。 Forum topic discussion KDE5 shutdown options. 上面的命令似乎已经正常关闭了我的系统。我的所有程序都按预期返回,布局顺序正确,而且我似乎没有遗漏任何内容。如果这不起作用,请发表评论,我将调整我的答案,但到目前为止,这就是在我的锁定时正常关闭 KDE5 的所有方法。 (显然我可以使用 shutdown 命令或调用 init,但这些并不优雅。)

第三种答案

对于任何版本的 KDE(也许还有 GNOME 和其他版本):

在KDE控制中心(KDE3.5/trinity)中,您可以设置“不确认就停止”的键盘快捷键(应该是一个复杂的快捷键,以避免悲剧,例如 Ctrl + Shift + Alt + Delete ),然后运行 ​​xvkbd (虚拟键盘) :

xvkbd -text '\C\S\A\d'

您可以为此创建一个别名(例如 kdehalt );

我最喜欢的一个: sleep 1h 20m && kdehaltwget "http://something" ; kdehalt

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/14163.html,未经允许,请勿转载。