当前位置: 首页>>技术问答>>正文


我怎样才能从命令行暂停/休眠?

, , , ,

问题描述

我如何使用命令行暂停或休眠我的笔记本电脑,而无需安装其他软件?

最佳解决方法

传统上,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-suspendsudo pm-hibernate命令可以在我的上网本上运行。

次佳解决方法

gnome-friendly的方式是使用dbus。

dbus-send --system --print-reply \
    --dest="org.freedesktop.UPower" \
    /org/freedesktop/UPower \
    org.freedesktop.UPower.Suspend

这个命令比pm-suspend有两个优点。

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

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

正如在交换最后一行中的SuspendHibernate的注释中所述,创建一个休眠命令:

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小时内入睡。当你醒来时,它会保留你的开放图像和所有东西。

您可以根据需要替换1hh几小时,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。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/100.html,未经允许,请勿转载。