如何从命令行暂停以致屏幕锁定?

如何从命令行暂停以致屏幕锁定?

我使用的是 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)。但是,该命令仅在屏幕保护程序运行时才有效,因此用处不大。

相关内容