我使用的是 Xubuntu 12.04。在电源管理器中,我选中了“扩展”->“锁定屏幕”以进入挂起/休眠模式。如果我从主菜单/面板 1 选择挂起,屏幕将被锁定。但是,如果我使用dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
(请参阅如何从命令行暂停/休眠?;我通过键盘快捷键使用此命令),屏幕是不是锁定。我怎样才能 (1) 暂停系统 (2) 同时锁定屏幕 (3) 并且不需要 root 权限才能执行这些操作 [因为我想将命令分配给键盘快捷键]。
答案1
您可以使用以下命令进行操作:
gnome-screensaver-command --lock && dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
在键盘快捷键中,您需要使用上面的命令sh -c "<command>"
进行替换,例如:<command>
sh -c "gnome-screensaver-command --lock && dbus-send --system --print-reply --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend"
如果上述命令不起作用,您也可以尝试使用 shell 脚本文件(例如suspend_lockscreen.sh
)。首先创建文件并在控制台中调用以下命令:
cd ~
echo "gnome-screensaver-command --lock" >> suspend_lockscreen.sh
echo "dbus-send --system --print-reply --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend" >> suspend_lockscreen.sh
chmod +x suspend_lockscreen.sh
这将在用户主文件夹中创建一个名为 suspend_lockscreen.sh 的文件。然后,在快捷方式中只需调用:./suspend_lockscreen.sh
。
注意:gnome-screensaver-command
可以用 代替xscreensaver-command
,正如一条评论所指出的那样。
答案2
我使用 amfcosta 的 dbus 命令从命令行暂停。但是,恢复后,eth0 已关闭。
然后我发现了这个命令:
xfce4-session-logout --suspend
此命令将禁用网络、暂停,然后在计算机唤醒时重新启用网络。
xfce4-session-logout
是 xfce 特有的,但其他桌面环境可能有类似的*-session-logout
命令。
我正在运行 Xubuntu 14.04。
更新:这可能不会影响其他设备,但事实证明,在我的华硕 EEE 900 上,有线以太网连接仅在 EEE 唤醒时才有效。这当然非常烦人,意味着暂停功能无法使用。
答案3
在 Ubuntu 15.10 中,同样可以这样做:
gnome-screensaver-command --lock && systemctl -i suspend
答案4
注意:xscreensaver-command
仅适用于 选项-lock
(带有 1 个连字符,而不是 的双连字符gnome-screensaver-command
)。但是,该命令仅在屏幕保护程序运行时才有效,因此用处不大。