Мне удалось успешно перевести компьютер в спящий режим и возобновить работу настольного ПК с Ubuntu 12.04, используя процедуру, описанную в в этом ответе . Однако теперь у меня есть проблема, что всякий раз, когда компьютер возобновляет работу, он не блокирует экран .
Как заблокировать экран после выхода системы из режима гибернации?
Я добавил псевдоним в файл ~/.bashrc
alias hibernate='sudo echo "Hibernating..."; gnome-screensaver-command -l; sudo pm-hibernate;'
, чтобы он блокировал экран перед гибернацией.
Я смог обойти эту проблему, используя следующую команду
sudo pm-hibernate; gnome-screensaver-command -l
Обратите внимание, что вы должны запускать это как обычный пользователь , а не как пользователь root для блокировки, чтобы работать, потому что по умолчанию в Ubuntu нет пароля для пользователя root, поэтому после возобновления экран блокировки можно разблокировать, просто встряхивая мышь.
У меня есть другой обходной путь. я скопировал это из /etc/acpi/sleep.sh
в /etc/acpi/hibernate.sh
незадолго до pm-hibernate
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
, теперь я могу переходить в режим гибернации с блокировкой из меню питания или кнопкой сна
Не в Ubuntu, но у меня работает следующее:
systemd-inhibit --what sleep --why "Lock screen" --mode delay xdg-screensaver lock & systemctl suspend
Замените xdg-screensaver lock
командой для блокировки экрана в вашей системе и systemctl suspend
на systemctl hibernate
, если вы хотите заблокировать экран перед гибернацией.
Это работает путем блокировки экрана параллельно приостановке машины. Однако команда блокировки экрана работает как ингибитор, который задерживает режим ожидания. Таким образом, systemd будет ждать, пока экран не будет заблокирован, перед выполнением.
Если у вас есть ингибиторы, которые блокируют приостановку, добавьте флаг -i
в конце.