如何从命令行挂起/休眠?

use*_*034 433 command-line suspend hibernate power-management

如何在不安装其他软件的情况下使用命令行挂起或休眠我的笔记本电脑?

txw*_*ger 412

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

系统方法

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

systemctl suspend
Run Code Online (Sandbox Code Playgroud)

systemctl hibernate
Run Code Online (Sandbox Code Playgroud)

新方法(已过时)

在 Ubuntu 16.04 左右过时;使用systemctl代替,如上所述。

请参阅Adam Paetznick在此页面上有关 dbus 使用的答案。理想情况下,您将创建一个~/bin/suspend快捷方式/脚本,以便轻松使用此操作。

要通过 ssh 使用,您应该修改 Peter V. Mørch 概述的 policykit 规则

旧方法

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

pmi action suspend
Run Code Online (Sandbox Code Playgroud)

pmi action hibernate
Run Code Online (Sandbox Code Playgroud)

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

sudo apt-get install powermanagement-interface

我还找到了命令sudo pm-suspendsudo pm-hibernate在我的上网本上工作。

  • pm-suspend 和 pm-hibernate 对我有用,而且很容易。需要 sudo 但没关系。(之前发现了 pmi 的想法,但是安装一个包来使用 suspend 是很糟糕的......) (26认同)
  • 一小时后暂停:`sleep 3600 && systemctl suspend` (2认同)

Ada*_*ick 191

gnome 友好的方法是使用 dbus。

dbus-send --system --print-reply \
    --dest="org.freedesktop.UPower" \
    /org/freedesktop/UPower \
    org.freedesktop.UPower.Suspend
Run Code Online (Sandbox Code Playgroud)

pm-suspend.

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

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

如评论中所述Suspend,将最后一行中的 交换以Hibernate创建休眠命令:

dbus-send --system --print-reply \
    --dest="org.freedesktop.UPower" \
    /org/freedesktop/UPower \
    org.freedesktop.UPower.Hibernate
Run Code Online (Sandbox Code Playgroud)

如果休眠引发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
Run Code Online (Sandbox Code Playgroud)

这是在UbuntuGnome 14.04上测试的。

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

  • 你的答案真的应该是第一位的。这是非 root 的 no-packages-to-be-installed gnome 方式。喜欢! (17认同)
  • 对于 `Hibernate`,你可以简单地用 `org.freedesktop.UPower.Hibernate` 替换最后一行 (12认同)
  • 挂起界面移至登录;http://askubuntu.com/questions/652978/ (7认同)
  • 对我不起作用(Gnome 3.12,Ubuntu 14.04)。根据 https://bugs.launchpad.net/ubuntu/+source/gnome-power-manager/+bug/554899,似乎 [UPower.Suspend] 接口已被删除 (6认同)
  • 在我的 13.10 上它确实有效。然而,即使在“安全和隐私”中,“从挂起唤醒时需要我的密码”*已*激活,屏幕在恢复时也*不*锁定。 (2认同)

小智 63

英语

如果您希望您的计算机在一小时内暂停,因为您想听自己喜欢的广播电台睡觉,请打开终端并输入:

sudo bash -c "sleep 1h; pm-suspend"
Run Code Online (Sandbox Code Playgroud)

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

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

晚安!

法语

Si vous voulez juste que votre ordinateur se mette en veille dans une heure parce que vous voulez vous endormir en ecoutant votre radio préférée, ouvrez Terminal et Tapez :

sudo bash -c "sleep 1h; pm-suspend"
Run Code Online (Sandbox Code Playgroud)

et votre ordinateur s'endormira dans une heure。Quand vous vous réveillerez, il aura conservé en mémoire vos applications ouvertes。

Vous pouvez remplacer 1hpar ce que vous voulez:hpour les heures、mpour les minutes、spour les secondes、dpour les jours。

邦纳夜!

西班牙语

Si quieres suspender tu computadora en una hora porque quieres ir a dormir escuchando tu estación de radio favourita, tan solo abre el terminal y escribe:

sudo bash -c "sleep 1h; pm-suspend"
Run Code Online (Sandbox Code Playgroud)

y tu computadora se quedará dormida en 1 hora。Cuando despiertes, allí habrán quedado abiertas tus imágenes y todas tus cosas。

Puedes reemplazar 1hpor lo que desees:hpara horas mspara minutos、dpara segundos 、para días。

¡Buenas noches!


rɑː*_*dʒɑ 35

要获得休眠:

sudo pm-hibernate
Run Code Online (Sandbox Code Playgroud)

要获得暂停:

sudo pm-suspend
Run Code Online (Sandbox Code Playgroud)

  • 这种方法的缺点是,如果您使用的是 GUI,pm-suspend 不会阻止您的会话,这可能是不安全的。 (2认同)

qbi*_*qbi 25

您可以使用该文件/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
Run Code Online (Sandbox Code Playgroud)

或通过 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 中将不再起作用。

  • 这很好用。对于在使用 sudo 时遇到此方法问题的人,“管道到文件”,又名“>”正在您当前的 shell 中运行,因此当您的 echo 执行时,它不会获得超级用户权限。你需要先使用`sudo -i`,或者像这样通过管道连接到`sudo tee`:`echo mem | 须藤三通/sys/power/state` (4认同)

k1l*_*k1l 13

由于15.04 systemD 是标准的 init 系统,因此需要使用一个新命令:

systemctl suspend
Run Code Online (Sandbox Code Playgroud)


小智 12

要从命令行(或键盘快捷键)挂起系统 (14.04),请使用:

dbus-send --system --print-reply --dest="org.freedesktop.login1" /org/freedesktop/login1 org.freedesktop.login1.Manager.Suspend boolean:true
Run Code Online (Sandbox Code Playgroud)

我通过玩 gdbus 发现了这一点,它可以列出可用的接口:

列出巴士上可用的服务:

dbus-send --system --dest=org.freedesktop.DBus --type=method_call --print-reply /org/freedesktop/DBus org.freedesktop.DBus.ListNames
Run Code Online (Sandbox Code Playgroud)

查找方法:

gdbus introspect --system --dest org.freedesktop.login1 --object-path /org/freedesktop/login1 --recurse
Run Code Online (Sandbox Code Playgroud)


小智 8

Adam Paetznick 的 dbus-send 答案在 lucid 上对我来说并没有像我所说的那样工作;即使 gnome-power-manager 设置为在唤醒时锁定屏幕,机器也已解锁。我希望屏幕在唤醒时被锁定,并发现以下内容可以做到这一点:

$ gnome-screensaver-command --lock && pmi action hibernate
Run Code Online (Sandbox Code Playgroud)

我想这不取决于 gnome 配置,但我还没有测试过。


归档时间:

查看次数:

577961 次

最近记录:

4 年,7 月 前