![使用命令行解锁登录屏幕](https://linux22.com/image/841488/%E4%BD%BF%E7%94%A8%E5%91%BD%E4%BB%A4%E8%A1%8C%E8%A7%A3%E9%94%81%E7%99%BB%E5%BD%95%E5%B1%8F%E5%B9%95.png)
是否可以通过命令行解锁 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 命令对我不起作用。