使用命令行解锁登录屏幕

使用命令行解锁登录屏幕

是否可以通过命令行解锁 13.04 Gnome shell 登录屏幕?用户登录到 Gnome shell,我可以以该用户身份登录到控制台。我也有 root 访问权限。

这是用于通过 VNC 访问活动的 X11 显示,而无需输入密码。

执行

gnome-screensaver-command -d

就像博客文章没有帮助。

登录屏幕

答案1

我假设你有一个最新的 Linux 系统systemd(例如 Ubuntu 16.04 或更新版本)。

如果你需要解锁您自己的会话,只需运行loginctl unlock-session(无需 root 权限,因为这是您自己的会话)。如果您有多个会话并且只想选择一个,请运行loginctl list-sessions以识别会话,然后运行例如loginctl unlock-session c187

如果你需要解锁所有会话,只需运行sudo loginctl unlock-sessions(注意复数形式)。请注意,无论哪个用户正在运行屏幕保护程序,这都会立即解锁所有会话。


如果您需要更多信息来识别正确的会话,您可以尝试以下操作:

loginctl list-sessions --no-legend | while read id rest; do echo; loginctl show-session $id; done

答案2

从 SSH 会话等执行命令时出现的问题gnome-screensaver-command通常是它们不会自动连接到活动桌面会话的相应会话总线 - 通常,设置 DISPLAY 变量可以修复该问题,例如这些对我有用(通过 SSH 以拥有锁定 X 会话的同一用户身份登录,该会话显示在 DISPLAY 上:0):

$ DISPLAY=:0 gnome-screensaver-command -d

解锁,以及

$ DISPLAY=:0 gnome-screensaver-command -l

锁定。

或者,你可以使用以下方式切换活动状态dbus-send- 例如

$ export DISPLAY=:0
$ dbus-send --session \
          --dest=org.gnome.ScreenSaver \
          --type=method_call \
          --print-reply \
          --reply-timeout=20000 \
          /org/gnome/ScreenSaver \
          org.gnome.ScreenSaver.SetActive \
          boolean:false

来源:https://people.gnome.org/~mccann/gnome-screensaver/docs/gnome-screensaver.html#gs-examples

答案3

以下对我有用:

sudo killall gnome-screensaver

当您通过 SSH 与另一个用户一起登录时特别有用。

答案4

我遇到过类似的问题,解锁屏幕有时不接受键盘输入。我最终解决这个问题的方法是关闭一些 gnome-screensaver正在运行的进程,以及一个gnome-screensaver-dialog进程。我猜是哪个进程产生了 2 个 gnome-screensaver 会话,搞乱了我的解锁屏幕。我实际上应该使用 xscreensaver,所以可能是它搞乱了。

无论如何,Ctrl+Alt+F1查找正在运行的屏幕保护程序进程ps -aux | grep screen并将它们全部终止。其他答案中列出的 gnome 和 xscreensaver 命令对我不起作用。

相关内容