it-swarm.cn

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

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

347
user1034

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

系统方法

从Ubuntu 16.04开始,必须使用systemctl调用(参见 buntu 16.04中的挂起命令

systemctl suspend

systemctl hibernate

新方法

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

要在ssh上使用,你应该 修改PeterV.Mørch概述的策略套件规则

旧方法

根据 buntu论坛 你可以使用以下命令:

pmi action suspend

pmi action hibernate

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

Sudo apt-get install powermanagement-interface

我还发现命令Sudo pm-suspendSudo pm-hibernate可以在我的上网本上运行。

294
txwikinger

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会创建一个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,使其包含以下部分: (source)

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

这是在 buntuGnome 14.04 上测试的。

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

187
Adam Paetznick

英文

如果您希望计算机在一小时内暂停,因为您想要上床听您最喜爱的广播电台,请打开终端并键入:

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

你的电脑将在1小时内入睡。当你醒来时,它会保持你的开放图像和你所有的东西。

您可以根据需要替换1hh表示小时,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 votreradiopréférée,ouvrez Terminal et tapez:

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

et votre ordinateur s'endormira dans une heure。 Quand vousvouséveillerez,il auraconservéenmémoirevos应用程序ouvertes。

Vous pouvez remplacer 1h par ce que vous voulez:h pour les heures,m pour les minutes,s pour les secondes,d pour les jours。

Bonne nuit!

西班牙语

Si quieres suspender tu computadora en una hora porque quieres ir a dormir escuchando tuestaciónderadio favorita,tan solo abre el terminal y escribe:

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

y tu computadorasequedarádomiidaen 1 hora。 Cuando despiertes,allíhabránquedadoabiertastusimágenesytodas tus cosas。

Puedes reemplazar 1h por lo que desees:h para horas,m para minutos,s para segundos,dparadías。

¡布纳斯诺斯!

57
greg

对于buntu 12.04 LTSbuntu 13.04

要获得休眠状态:

Sudo pm-hibernate

获得暂停:

Sudo pm-suspend
31
rɑːdʒɑ

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

[email protected]:_> cat /sys/power/state
standby mem disk

[email protected]:~> echo -n mem > /sys/power/state  # suspend to ram
[email protected]:~> echo -n disk > /sys/power/state  # suspend to disk

或通过dbus:

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

根据这个 在启动板中输入 上面的界面被删除了。所以它在Ubuntu中不再起作用了。

22
qbi

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

dbus-send --system --print-reply --dest="org.freedesktop.login1" /org/freedesktop/login1 org.freedesktop.login1.Manager.PowerOff boolean:true

我通过玩gdbus找到了这个,它可以列出可用的接口:

列出总线上可用的服务:

dbus-send --system --dest=org.freedesktop.DBus --type=method_call --print-reply /org/freedesktop/DBus org.freedesktop.DBus.ListNames

要找到方法:

gdbus introspect --system --dest org.freedesktop.login1 --object-path /org/freedesktop/login1 --recurse
12
simonltwick

因为15.04 systemD是标准的init系统,所以有一个新命令可供使用:

systemctl suspend
11
k1l

Adam Paetznick的dbus-send答案并没有像清醒所说的那样起作用;即使gnome-power-manager设置为在唤醒时锁定屏幕,机器也会解锁。我希望屏幕在唤醒时被锁定,并发现以下内容:

$ gnome-screensaver-command --lock && pmi action hibernate

我想这不依赖于gnome配置,但我没有测试过。

8
Aryeh Leib Taurog

新界面

......在15.10 Wily中工作,可能是Utopic和Vivid。

dbus-send --print-reply --system                         \
    --dest=org.freedesktop.login1                        \
    /org/freedesktop/login1                              \
    org.freedesktop.login1.Manager.Suspend boolean:true

pm-suspend命令不同,这不需要Sudo。

3
Gringo Suave

以下是如何通过ssh将远程计算机置于待机状态:

 ssh -t 192.168.1.4'Dudo Nohup&>/dev/null bash -c“(sleep 1; echo -n mem>/sys/power/state)&”'
 x @ 192.168.1.4的密码:
 [Sudo]密码x:[。_____。]连接到192.168.1.4关闭。[。_____。]

/ sys/power/state在Ubuntu 13.10中有效。 pmi给出了Dbus错误。

1
user229115

与我一样,仍在KDE/Ubuntu 14.04系统上工作的人的更新。要锁定使用qdbus,并暂停使用dbus。完整命令:

qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock && dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend

要休眠,即挂起到硬盘而不是RAM,请在命令末尾用'Hibernate'替换'Suspend'。

要仅锁定屏幕而不挂起,xscreensaver-command -lock将起作用,如果您只为“-lock”选项键入1个连字符,并且仅在屏幕保护程序正在运行时。实际上不是一个非常有用的命令。使用i3lock更容易,但是当你使用qdbus时,你将不会得到一个整洁的登录对话框来恢复工作。

0
LinuxRev

以下适用于16.04(使用Gnome桌面):

gnome-screensaver-command --lock && compsleep

我还通过Gnome设置面板将其作为自定义键盘快捷键安装为“Shift-Super-X”键。

0
christopherbalz

就个人而言,我一直在尝试使用pmi方法。但是,当我尝试这个时,我收到一条错误消息:Error org.freedesktop.DBus.Error.Spawn.ChildExited: Launch helper exited with unknown return code 1。但是,有一个解决方法 第3条评论这个错误报告 ,这似乎对我有用(我使用的是Ubuntu 13.03)。

0
TSJNachos117