如何从命令行暂停/hibernate?

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

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

系统方法

从Ubuntu 16.04开始,必须使用systemctl调用(参见Ubuntu 16.04中的Suspend命令 )

 systemctl suspend 

 systemctl hibernate 

新方法

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

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

旧方法

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

 pmi action suspend 

 pmi action hibernate 

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

sudo apt-get install powermanagement-interface

我还发现命令sudo pm-suspendsudo pm-hibernate在我的上网本上工作。

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 

如果hibernate引发Error org.freedesktop.UPower.GeneralError: not authorized可能不允许您的用户hibernate。 编辑或创建/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以及包括hibernate。

英语

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

 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应用程序。

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!

西class牙语

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,dparaíías。

¡布纳斯诺斯!

对于Ubuntu 12.04 LTSUbuntu 13.04

要获得hibernate状态:

 sudo pm-hibernate 

获得暂停:

 sudo pm-suspend 

您可以使用文件/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:

#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中不再起作用了。

要从命令行(或键盘快捷键)关闭系统(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 

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

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

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

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

 systemctl suspend 

新界面

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

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

这有点不需要sudo,与pm-suspend命令不同。

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

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

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

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

像我一样,仍然在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 

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

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

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

gnome-screensaver-command --lock && compsleep

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