Как полностью отключить Hibernate в Kubuntu?


11

Я видел ответ на Как отключить спящий режим? , но у меня нет такого файла. Возможно, потому что это предложение было написано для Ubuntu, а не Kubuntu (KDE, не Gnome).

У меня нет подкачки на моем зашифрованном SSD, моя система зависает (даже не может изменить Caps Lock), если я случайно нажму кнопку «Hibernate» в «Energy management». На моей клавиатуре есть кнопка Hibernate ( Fn+ F4) рядом с кнопками регулировки громкости, и каждый раз, когда я нажимаю неправильную клавишу, система зависает после.

Итак, как правильно его отключить? Если решения не существует, то приветствуется и обходной путь.


+1 Это (и отключение режима приостановки) - очень важный вопрос для всех, кто использует накопители OCZ Vertex2 ... режим приостановки / гибернации может мгновенно уничтожить накопитель без надежды на восстановление одного байта. :(
— Расс

Ответы:


6

Триггеры для гибернации:

  • Нажмите кнопку Hibernate в Kickoff -> Выйти -> Hibernate
  • Нажмите Hibernate на значке энергии на панели задач.
  • Отправить сигнал dbus: qdbus org.kde.kded /modules/powerdevil suspend 4

Когда спящий режим запускается, это поток выполнения:

  1. /usr/lib/hal/scripts/linux/hal-system-power-hibernate-linux называется
  2. /usr/sbin/pm-hibernate вызывается с некоторыми аргументами
  3. Ведение журнала начинается с /var/log/pm-suspend.log
  4. Крючки выполнены для подготовки к зимней спячке. Эти крючки расположены в /usr/lib/pm-utils/sleep.d/и /etc/pm/sleep.dи отсортированы по имени (сначала номера)
  5. performing hibernate записывается в журнал
  6. Вызывается функция оболочки do_hibernate, инструктирующая систему переходить в спящий режим.
  7. Когда система возобновляет работу, выполняются зацепки для восстановления из спящего режима
  8. Система снова работает

Чтобы отключить гибернацию, создайте /etc/pm/sleep.d/000no-hibernationсо следующим контентом:

#!/bin/sh
# prevents hibernation
. "$PM_FUNCTIONS"
[ "$1" = "hibernate" ] && inhibit || true

Как 000no-hibernationи прежде, чем сценарии 00logging(выводит модули и информацию о памяти в журнале), никакие приложения или модули не прерываются и не выгружаются. Это имя было вдохновлено /usr/lib/pm-utils/sleep.d/000kernel-change. Остерегайтесь ошибки # 665651, из-за которой ненулевые возвращаемые значения хуков не могут отменить приостановку или спящий режим.

Это исправляет проблему гибернации для меня. Хотя экран заблокирован, я могу жить с этим. Это намного лучше по сравнению с аварийной системой.


Я добавил, || trueчтобы предотвратить ненулевой код выхода, который предотвращает приостановку. Проверено на работу для приостановки и блокировки спящего режима.
— Лекенштейн

Отличный ответ! Очень тщательно .. Спасибо за размещение того, что вы нашли. Расширяя его, этот скрипт (из сообщения об ошибке, который вы связали) чисто останавливает как спящий режим, так и приостановку. Редактирование, чтобы сделать только один из них, также тривиально.
— Расс
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.