我使用的是 Linux (RHEL6) 工作站。我编写了一个小脚本,当我连接或断开 USB 拇指驱动器时,它会通过 xscreensaver 锁定和解锁屏幕,这实际上将其变成了工作站的物理密钥。问题是,似乎没有从命令行解锁 xscreensaver 的好方法。xscreensaver-command -deactivate
与直觉相反,它只“模拟用户活动”,并且仍然需要密码才能解锁屏幕。只有在没有运行屏幕保护程序时xscreensaver-command -exit
才会杀死父守护进程。正如的手册页警告的那样,xscreensaver
xscreensaver-command -exit
Warning: never use kill -9 with xscreensaver while the screensaver is active. If you are using a virtual root window manager,
that can leave things in an inconsistent state, and you may need to restart your window manager to repair the damage.
确实,我目前使用的pkill xscreensaver
方法是从脚本中删除屏幕保护程序,这通常会导致僵尸进程和其他混乱。如何才能从脚本/命令行安全地解锁屏幕保护程序?
答案1
鉴于 xscreensaver 对安全性近乎偏执的关注,正如jwz 的 xscreensaver 常见问题解答并进一步阐明关于工具包, 我强烈怀疑除了您当前使用的强制终止之外,其他任何方法都无法在不使用密码的情况下解锁普通 xscreensaver。最好的选择可能是修改源代码以包含“-forceunlock”选项之类的内容,然后从中构建您自己的二进制文件。
答案2
sudo killall -9 xscreensaver
答案是。如果你关闭它,屏幕就会解锁,很简单。然后你可以用 重新启动它,DISPLAY=:0 xscreensaver -no-splash
然后用 锁定它DISPLAY=:0 xscreensaver-command -lock
。当然,解锁屏幕存在安全隐患,但我需要这样做,而且我知道自己在做什么。这样做风险自负,免责声明结束。