使用命令行解锁登录屏幕


30

是否可以从命令行解锁13.04 Gnome Shell登录屏幕?一个用户登录到Gnome Shell,我可以以此用户身份登录到控制台。我也有root访问权限。

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

执行中

gnome-screensaver-command -d

博客文章中所建议那样无济于事。

登入画面


ssh是否向您抛出任何输出或错误?
Braiam

@布赖恩:我可以ssh,那不是问题。它用于通过VNC访问活动的X11显示器,而无需输入密码。
krlmlr 2013年

Answers:


33

我假设您使用的是最新的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

3
这是唯一适用于16.04的答案
lemonsqueeze

显然不需要sudo
lemonsqueeze

1
你需要sudo,如果你想给所有会话的解锁屏幕保护程序(包括不与您的用户ID运行的会话)。
Mikko Rantalainen

还要注意最后sunlock-sessions。如果您只想解锁自己的会话,请执行loginctl unlock-session
Mikko Rantalainen

2
应该是公认的答案!
布莱斯

16

gnome-screensaver-command从SSH会话执行命令的问题通常是它们不会自动连接到活动桌面会话的相应会话总线-通常,设置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


1
不幸的是,这两种方法都无法解锁安装在系统上的特定屏幕锁(请参见屏幕截图)。我怎么才能找到哪个进程负责锁定屏幕?
krlmlr 2013年

1
命令是否返回错误?如果是这样,请张贴。要查看是否正在运行其他屏幕保护程序,可以尝试ps -fu <username> | grep saver-可能xscreensaver正在使用而不是gnome-screensaver,在这种情况下,您可以尝试DISPLAY=:0 xscreensaver-command -deactivate
steeldriver's

1
我在Ubuntu 14.04上测试了这个答案。没用 它取消了屏幕的空白,但屏幕保持锁定状态。
kasperd

5

以下为我工作:

sudo killall gnome-screensaver

与其他用户通过SSH登录时特别有用。


确认,当键盘未在解锁屏幕上键入但没有问题时,我遇到了这个问题,但是能够使用CTRL + ALT + F3切换到终端,并且此屏幕保护程序杀手级功能有所帮助。然后我只是按CTRL + ALT + F2回到锁定的会话:)
jave.web

当X2Go显示锁定屏幕且没有响应时,此方法有效:)
endolith

1

我遇到了gnome 3的屏幕锁定(屏幕保护程序)卡在黑屏的问题。我设法通过替换 gnome-shell窗口管理器来解决此问题。

Ctrl + Alt + F1并登录虚拟控制台,然后:

pkill -QUIT gnome-shell
DISPLAY=:0.0 gnome-shell -r &

&使新的gnome-shell处于后台,以便您可以注销虚拟控制台并保持其运行。或者使用Ctrl + Z挂起gnome-shell进程并将bg其后台。)

它可能并不优雅,但是它最终使我可以回到桌面应用程序,而不必担心,gnome迫使我注销。


谢谢,我将尝试看看重新启动是否gnome-shell对我有效。
krlmlr 2014年

1

我有一个类似的问题,即解锁屏幕有时不接受键盘输入。我最终解决的方法是杀死正在运行的多个 gnome-screensaver进程以及一个gnome-screensaver-dialog进程。我猜想无论产生2个gnome-screensaver会话的任何过程都弄乱了我的解锁屏幕。我实际上应该使用xscreensaver代替,所以也许把它弄乱了。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.