问题描述
我如何使用命令行暂停或休眠我的笔记本电脑,而无需安装其他软件?
最佳解决方法
传统上,ubuntu支持一种相当直接的挂起和休眠方法。它们都不能很好地与其他应用程序集成,有时甚至不能在某些机器上工作。新方法不需要root并通知所有监听电源事件的应用程序。
系统方法
从Ubuntu 16.04开始,必须使用systemctl
调用(请参阅Suspend command in Ubuntu 16.04)
systemctl suspend
和
systemctl hibernate
新方法
请参阅此页上的答案from Adam Paetznick regarding the use of dbus。理想情况下,您可以创建一个~/bin/suspend
快捷方式/脚本,使此操作的使用变得简单。
要通过ssh使用,您应该使用modify policykit rules as outlined by Peter V. Mørch
旧方法
根据Ubuntu Forum,您可以使用以下命令:
pmi action suspend
和
pmi action hibernate
这要求您安装powermanagement-interface软件包(未经测试)。
sudo apt-get install powermanagement-interface
我还发现sudo pm-suspend
和sudo pm-hibernate
命令可以在我的上网本上运行。
次佳解决方法
gnome-friendly的方式是使用dbus。
dbus-send --system --print-reply \
--dest="org.freedesktop.UPower" \
/org/freedesktop/UPower \
org.freedesktop.UPower.Suspend
这个命令比pm-suspend
有两个优点。
-
如果您在gnome中选择了该选项,它会锁定您的屏幕(恢复时)。
-
例如,它不需要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
,使其包含以下部分:(source)
[Re-enable hibernate by default]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
这在UbuntuGnome 14.04上进行了测试。
注意:这与qbi的答案基本相同,但更新后可用于较新版本的Ubuntu以及包含休眠。
第三种解决方法
English
如果您希望电脑在一小时内暂停,因为您想睡觉时收听您最喜爱的电台,请打开终端并键入:
sudo bash -c "sleep 1h; pm-suspend"
你的电脑将在1小时内入睡。当你醒来时,它会保留你的开放图像和所有东西。
您可以根据需要替换1h
:h
几小时,m
几分钟,s
几秒钟,d
几天。
晚安!
法语
Si vous voulez juste que votre ordinateur se met met en veille dans une heure parce que vous voulez vous endormir en ecoutant votre radiopréférée,ouvrez Terminal et tapez:
sudo bash -c "sleep 1h; pm-suspend"
和其他协调员一起工作。 Quand vous vousréveillerez,il auraconservéenmémoirevos applications ouvertes。
VAB POUVEZ REMPER 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ónde radio favorita,tan solo abre el terminal y escribe:
sudo bash -c "sleep 1h; pm-suspend"
y tu computadora sequedarádormida en 1 hora。 Cuando despiertes,allíhabránquedado abiertas tusimágenesy todas tus cosas。
Puedes reemplazar 1h
por lo que desees:h
para horas,m
para minutos,s
para segundos,d
paradías。
Buenas noches!
第四种方法
对于Ubuntu 12.04 LTS和Ubuntu 13.04
休眠:
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:
#暂停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
根据这个entry in launchpad,上述接口被删除。所以它不会在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设置为锁定wake-up上的屏幕,机器也会被解锁。我想让屏幕锁定在wake-up,并发现以下内容:
$ 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
与pm-suspend
命令不同,这并不需要sudo。