如何在 LXDE 中从命令行暂停机器

如何在 LXDE 中从命令行暂停机器

我使用的是 Lubuntu 14.04 和 Openbox 3.5.2。
有一行代码用于锁定屏幕:dm-tool lock
以及弹出退出菜单:lxsession-default quit

但是,如果我需要执行暂停,我需要先弹出上述菜单,
然后导航到“暂停”选项并按回车键。

可以用一个命令完成吗?

答案1

您可以使用以下方式从终端暂停:

sudo pm-suspend

在某些情况下,直接调用pm-suspend可能会导致 Wi-Fi 驱动程序和其他程序出现问题。此外,手册页pm-suspend说,虽然可以从命令行调用它,但通常应该通过桌面电源管理器来调用它。

手册页补充说,从命令行调用时,"it is not guarenteed that all of your programs in your desktop session keep working as expected."

大多数问题似乎都是由于在挂起之前未停止或卸载的服务或模块造成的。有关此问题的详细讨论以及解决方法,请参阅暂停至 Ram在 Arch wiki 中。

Arch Wiki 还建议允许特定用户pm-suspend无需sudo通过visudo添加以下行即可运行/etc/sudoers

username  ALL = NOPASSWD: /usr/sbin/pm-suspend

LXDE 使用xfce4-power-manager,用于pkexec调用pm-suspendpkexec允许以另一个用户的身份执行程序,在本例中是root

身份验证由 处理polkit。它通常会提示输入密码,但正如我从没有密码的 pkexec可以通过 中的文件来抑制这种情况/usr/share/polkit-1/actions

那里有一个名为org.freedesktop.upower.policyupower参与调用pm-suspend但为了简单起见我将其省略了)的文件。

该文件包含行<allow_active>yes</allow-active>,这使得操作无需输入密码即可继续进行。

与电源相关的操作比锁定屏幕或调出菜单要复杂得多。最好使用电源管理器中的暂停选项。

如果您的挂起功能键可用,您可能会发现这很方便。如果它最初似乎不起作用,请检查电源管理器中的设置。在 Lubuntu 中,睡眠按钮默认未设置为挂起。

您可能还喜欢在 Arch 页面上解决问题以便pm-suspend直接使用。但要小心。我在其他几台笔记本电脑上直接使用了该命令,没有任何问题。在这台特定的笔记本电脑(Lenovo S10-3)上,它杀死了 wifi 驱动程序。我不得不拔掉 CMOS 电池才能让它重新工作。

答案2

当然,

你可以尝试这个:

echo mem > /sys/power/state 

也许您必须使用 sudo 才能运行它。

答案3

这可以通过 DBus 完成,无需sudo或更高权限。您可以为其创建别名或脚本。

dbus-send --session --dest=org.freedesktop.PowerManagement \
 /org/freedesktop/PowerManagement \
 org.freedesktop.PowerManagement.Suspend

最好使用 探索所有可用选项 d-feet

  1. 安装 d-feet

    sudo apt-get install d-feet
    
  2. 跟随

    D-Feet → 会话选项卡
    org.freedesktop.PowerManagement
    /org/freedesktop/PowerManagement
    org.freedesktop.PowerManagemenl

    D-Feet → 系统或会话选项卡
    <dbus-name>
    <object-path>
    <interface>:方法、属性和信号列表

参考:

  • man dbus-send
  • /usr/share/dbus-1/interfaces/org.freedesktop.PowerManagement.xml

    /usr/share/dbus-1/services/对于会话总线
    /usr/share/dbus-1/system-services/对于系统总线

    /usr/share/dbus-1/interfaces/两者的接口

    访问系统总线服务最多需要 root 权限或策略编辑polkit。请参阅查斯克斯回答。

相关内容