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

评论

对于Ubuntu 16.04,请参阅以下问题:askubuntu.com/questions/777178/suspend-command-in-ubuntu-16-04及其答案systemctlsuspend

#1 楼

传统上,ubuntu支持相当钝的暂停和休眠方法。两者都无法与其他应用程序很好地集成,有时甚至不能在某些计算机上运行。此新方法不需要root用户,并且会通知所有应用程序以监听电源事件。
系统方法
从Ubuntu 16.04开始,必须使用systemctl调用(请参见Ubuntu 16.04中的Suspend命令)
systemctl suspend


systemctl hibernate

新方法(已过时)
大约在Ubuntu 16.04之前已过时;如上所述,请改用systemctl
有关dbus的用法,请参见Adam Paetznick本页上的答案。理想情况下,您将创建一个~/bin/suspend快捷方式/脚本,以使该操作的使用变得容易。
要在ssh上使用,您应修改Peter V.Mørch概述的policykit规则。
旧方法
到Ubuntu论坛,您可以使用以下命令:
pmi action suspend


pmi action hibernate

这要求您安装电源管理接口软件包(未测试)。
sudo apt-get install powermanagement-interface
我还找到了可在上网本上使用的命令sudo pm-suspendsudo pm-hibernate

评论


pm-suspend和pm-hibernate对我有用,这很容易。需要sudo,但是可以。 (以前发现过pmi想法,但是安装一个使用suspend的软件包是很糟糕的……)

–user1034
2010年8月9日20:52

请注意,您必须apt-get install powermanagement-interface才能运行pmi。

–nealmcb
2012年2月10日,下午1:47

在11.10上,仅pm- *有效,并且添加了powermanagament-interface

– Omegafil
2012年2月13日在9:56

与我的ubuntu 12.10不兼容。 apt-get install powermanagement-interface之后

–somethis
2013年6月2日9:37

现在,新方法已损坏,请参见unix.stackexchange.com/questions/153099/…

–ijk
2015年4月3日在18:28

#2 楼

gnome友好的方法是使用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,使其包含以下部分:(源代码)

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


这已在UbuntuGnome 14.04上进行了测试。

注意:这是基本上与qbi的答案相同,但已更新为可用于Ubuntu的较新版本以及包括hibernate的功能。

评论


您的答案确实应该是第一位。这是要安装的非root用户无软件包gnome方式。喜欢!

–涡轮
2012年6月7日下午16:26

要休眠,您只需将最后一行替换为org.freedesktop.UPower.Hibernate

– Sheharyar
13年8月11日在8:46



在我的13.10上确实有效。但是,即使在“安全和隐私”中,激活了“从挂起状态唤醒时要求我的密码”,屏幕也不会在恢复时锁定。

– andreas-h
2014年2月22日12:24



不适用于我(Gnome 3.12,Ubuntu 14.04)。根据bugs.launchpad.net/ubuntu/+source/gnome-power-manager/+bug/…,似乎[UPower.Suspend]界面已删除。

–圭·安布罗斯
2014年5月25日14:09

挂起界面已移至登录状态; askubuntu.com/questions/652978

–Khurshid Alam
15年8月6日在7:52

#3 楼

简体中文
如果您想睡觉就读一台喜欢的电台,而希望在一小时内挂起计算机,请打开终端并输入:
sudo bash -c "sleep 1h; pm-suspend"

,计算机将在其中入睡1小时。醒来后,它将保留您打开的图像和所有内容。
您可以将1h替换为您想要的内容:h表示小时,m表示分钟,s表示秒,d表示几天。
很好夜晚! >请再听取意见。 Quous vous vousréveillerez,il气氛在vos应用程序输出。 />邦纳·努伊(Bonne nuit)! >您在1个小时后在多尔米达举行。 Cuando despiertes,所有哈布兰·奎达多·阿比埃塔斯·托马斯·科萨斯。
Puedes reemplazar 1h在以下地点查看:h para horas,m para minutos,s para segundos,q43

评论


那就是我要寻找的用例! AFIK pm- *可以在没有超级用户权限的情况下运行

–ruX
2014年7月28日在22:49

#4 楼

要休眠:
sudo pm-hibernate

要暂停:
sudo pm-suspend


评论


“ sudo pm-suspend”不适用于薄荷13伴侣:(

–rsjethani
2012年11月23日上午10:16

是的,我认为该软件包尚未安装。在突触中寻找那些包装。

–rɑːdʒɑ
2012年11月23日在17:34

这种方法的缺点是,如果您使用的是GUI,则pm-suspend不会阻止您的会话,这可能是不安全的。

–劳尔·萨利纳斯-蒙塔古多
15年2月18日在12:48

它也适用于Ubuntu 15.10。

–硒烯
15年12月18日在4:29

适用于14.04 lts

– Vitaly Zdanevich
16年2月26日在16:58

#5 楼

您可以使用文件/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: --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中将不再起作用。

评论


第一个主意给了我:“重击:回声:写错误:无效的参数” Dbus的主意给了输出:“错误org.freedesktop.DBus.Error.UnknownMethod:接口” org.gnome.PowerManager“上方法”挂起“,带有签名”“不存在”

–user1034
2010年8月9日20:58



我在/ sys / power / state-thing中添加了一个小说明。此外,dbus方法已从Ubuntu中删除,因此它将不再起作用。

– qbi
2010年8月9日在21:45

$ sudo echo -n mem> / sys / power / state-bash:/ sys / power / state:权限被拒绝

–Hubro
2014年8月24日在21:01

这很好。对于使用sudo时对这种方法有疑问的人,“ pipe to file”(又名“>)正在您当前的shell中运行,因此在执行echo时不会获得超级用户特权。您需要先使用sudo -i,或使用管道将sudo tee如下所示:echo mem |须藤tee / sys / power / state

–RandomInsano
2014年9月1日4:22



#6 楼

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


#7 楼

由于15.04 systemD是标准的初始化系统,因此有一个新命令要使用:

systemctl suspend


评论


我正在使用Xubuntu 15.04。即使已在“设置”->“电源管理器”->“安全性”中选中了“系统进入睡眠状态时锁定屏幕”复选框,命令systemctlsuspend会挂起计算机,但不会导致屏幕被锁定。有人知道为什么吗?

– Teemu Leisti
16年4月10日在13:28

我已经升级到Xubuntu 16.04。命令systemctlsuspend仍然挂起计算机。现在,它也导致屏幕被锁定,当且仅当在设置复选框“时,系统会睡眠锁定屏幕” - >电源管理 - >安全检查。

– Teemu Leisti
16年6月22日在18:54

#8 楼

亚当·帕兹尼克(Adam Paetznick)的dbus发送答案并未像我所想的那样清晰。即使将gnome-power-manager设置为在唤醒时锁定屏幕,机器也会被解锁。
我希望在唤醒时锁定屏幕,并发现以下操作可以做到:

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


我想这不取决于gnome配置,但是我还没有测试过。

评论


真好或视情况而定xscreensaver-command --lock。

–善待您的Mod
17年4月4日在1:49

#9 楼

新界面

…可在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命令。

评论


我的带Debian / Gnome的XPS 13 9350在关闭盖子时出现了挂起/休眠问题。运行此命令(以及等同于休眠的命令)后,它成功进入了暂停(休眠)状态,现在按预期方式关闭和打开盖子!

– VictorSchröder
16 Dec 25 '18:29

#10 楼

以下是将远程计算机通过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's password: 
[sudo] password for x: 
Connection to 192.168.1.4 closed.


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

#11 楼

就个人而言,我一直在尝试pmi方法。但是,当我尝试此操作时,出现错误消息:Error org.freedesktop.DBus.Error.Spawn.ChildExited: Launch helper exited with unknown return code 1。但是,此错误报告的第3条注释中有一个变通办法,这似乎对我有用(我正在使用Ubuntu 13.03)。

评论


尽管从理论上讲这可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。

–fossfreedom♦
13年8月31日在7:37



#12 楼

对于那些像我一样仍在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,请在命令末尾用“休眠”替换“挂起”。

如果只在锁屏选项中输入1个连字符,并且仅在屏幕保护程序正在运行时,只需锁定屏幕而不挂起,xscreensaver-command -lock就可以使用。其实不是一个非常有用的命令。使用i3lock更容易,但是您将不会像使用qdbus那样获得整洁的登录对话框以恢复工作。

#13 楼

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

gnome-screensaver-command --lock && compsleep

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