如何从命令行暂停/休眠?

如何从命令行暂停/休眠?

如何使用命令行暂停或休眠我的笔记本电脑,而无需安装额外的软件?

答案1

传统上,ubuntu 支持一种相当粗暴的挂起和休眠方法。这两种方法都无法与其他应用程序很好地集成,有时甚至在某些机器上不起作用。这种新方法不需要 root 权限,并会通知所有监听电源事件的应用程序。

系统方法

从 Ubuntu 16.04 开始,systemctl必须使用 call (请参阅Ubuntu 16.04 中的暂停命令

systemctl suspend

systemctl hibernate

新方法(已过时)

大约在 Ubuntu 16.04 中已过时;请使用systemctl上述方法代替。

请参阅本页上的答案Adam Paetznick 关于 dbus 的使用。理想情况下,您可以创建一个~/bin/suspend快捷方式/脚本,使此操作更加容易使用。

对于通过 ssh 使用,你应该按照 Peter V. Mørch 的概述修改 policykit 规则

旧方法

根据Ubuntu 论坛您可以使用以下命令:

pmi action suspend

pmi action hibernate

这要求您安装 powermanagement-interface 包(未经测试)。

sudo apt-get install powermanagement-interface

sudo pm-suspend我还找到了可以sudo pm-hibernate在我的上网本上运行的命令。

答案2

gnome友好的方式是使用dbus。

dbus-send --system --print-reply \
    --dest="org.freedesktop.UPower" \
    /org/freedesktop/UPower \
    org.freedesktop.UPower.Suspend

与 相比,此命令有两个优点pm-suspend

  1. 如果您在 gnome 中选择了该选项,它将锁定您的屏幕(恢复时)。

  2. 它不需要 root 权限,因此很容易将其添加为键盘快捷键。

正如在评论中提到的那样,Suspend在最后一行交换以Hibernate创建休眠命令:

dbus-send --system --print-reply \
    --dest="org.freedesktop.UPower" \
    /org/freedesktop/UPower \
    org.freedesktop.UPower.Hibernate

如果休眠抛出,Error org.freedesktop.UPower.GeneralError: not authorized您的用户可能不被允许休眠。编辑或创建/etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla,使其包含以下部分:(来源)

[Re-enable hibernate by default]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

这是测试UbuntuGnome 14.04

注意:这基本上与 qbi 的答案相同,但已更新以适用于较新版本的 Ubuntu 以及包括休眠状态。

答案3

如果您希望计算机在一小时后挂起,因为您想上床睡觉并听您最喜欢的广播电台,请打开终端并输入:

sudo bash -c "sleep 1h; pm-suspend"

您的计算机将在 1 小时后进入睡眠状态。当您醒来时,它将保留您打开的图片和所有内容。

您可以替换1h成您想要的内容:h小时、m分钟、s秒、d天。

答案4

您可以使用该文件/sys/power/state来执行此操作。首先找出支持哪些状态:

user@linux:_> cat /sys/power/state
standby mem disk

root@linux:~> echo -n mem > /sys/power/state  # suspend to ram
root@linux:~> echo -n disk > /sys/power/state  # suspend to disk

或者通过 dbus:

# 暂停 dbus-send --session --dest=org.gnome.PowerManager \ --type=method_call --print-reply --reply-timeout=2000 \ /org/gnome/PowerManager org.gnome.PowerManager.Suspend # 休眠 dbus-send --session --dest=org.gnome.PowerManager \ --type=method_call --print-reply --reply-timeout=2000 \ /org/gnome/PowerManager org.gnome.PowerManager.Hibernate

根据这个进入启动板上述界面已被删除。因此它在 Ubuntu 中不再起作用。

相关内容