从hibernate状态恢复后如何锁定屏幕?
我已经能够使用我在这个答案中记录的程序成功地hibernate并恢复我的Ubuntu 12.04台式PC。 但是,我现在遇到的问题是,只要PC恢复,它就不会锁定屏幕。
系统从hibernate状态恢复后,如何锁定屏幕?
我在~/.bashrc
文件中添加了一个别名
alias hibernate='sudo echo "Hibernating..."; gnome-screensaver-command -l; sudo pm-hibernate;'
这样它就会在冬眠之前锁定屏幕。
我已经能够通过使用以下命令解决此问题
sudo pm-hibernate; gnome-screensaver-command -l
请注意,您应该以普通用户身份运行 ,而不是以root用户身份运行锁定,因为默认情况下在Ubuntu中,root用户没有密码,因此在恢复后,只需摇动锁定即可解锁锁定屏幕老鼠。
我有另一个解决方法。 我在pm-hibernate
之前将它从/etc/acpi/sleep.sh
复制到/etc/acpi/hibernate.sh
if [ x$LOCK_SCREEN = xtrue ]; then if pidof xscreensaver > /dev/null; then for x in /tmp/.X11-unix/*; do displaynum=`echo $x | sed s#/tmp/.X11-unix/X##` getXuser; if [ x"$XAUTHORITY" != x"" ]; then export DISPLAY=":$displaynum" . /usr/share/acpi-support/screenblank fi done fi fi
现在我可以通过电源菜单或睡眠按钮进行hibernate
不是在Ubuntu上,但以下对我有用:
systemd-inhibit --what sleep --why "Lock screen" --mode delay xdg-screensaver lock & systemctl suspend
如果要在hibernate之前锁定屏幕,请使用命令替换xdg-screensaver lock
以锁定系统上的屏幕并使用systemctl hibernate
systemctl suspend
systemctl hibernate
。
这通过并行锁定屏幕以悬挂机器来实现。 但是,屏幕锁定命令作为延迟睡眠的抑制剂运行。 这样,systemd将等到屏幕被锁定后再执行。
如果您有阻止挂起的抑制器,请在末尾添加-i
标志。