如何从命令行暂停/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-suspend
和sudo pm-hibernate
在我的上网本上工作。
gnome友好的方式是使用dbus。
dbus-send --system --print-reply \ --dest="org.freedesktop.UPower" \ /org/freedesktop/UPower \ org.freedesktop.UPower.Suspend
与pm-suspend
相比,此命令有两个优点。
-
如果您在gnome中选择了该选项,它将锁定您的屏幕(恢复时)。
-
它不需要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小时内入睡。 当你醒来时,它会保持你的开放图像和你所有的东西。
您可以根据需要更换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 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 LTS和Ubuntu 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”键。