Bagaimana saya bisa menonaktifkan Hibernate sepenuhnya di Kubuntu?

11

Saya telah melihat jawabannya di Cara menonaktifkan hibernasi? , tapi saya tidak punya file seperti itu. Mungkin karena saran itu ditulis untuk Ubuntu, bukan Kubuntu (KDE, bukan Gnome).

Saya tidak memiliki swap pada SSD terenkripsi saya, sistem saya membeku (bahkan tidak dapat mengubah Caps Lock) jika saya tidak sengaja menekan tombol "Hibernate" di "Manajemen energi". Keyboard saya memiliki tombol Hibernate ( Fn+ F4) di sebelah tombol kontrol volume dan setiap kali saya menekan tombol yang salah, sistem akan membeku setelahnya.

Jadi, apa cara yang benar untuk menonaktifkannya? Jika tidak ada solusi, sebuah penyelesaian juga disambut baik.

Lekensteyn
sumber
+1 Ini (dan penonaktifan penangguhan) adalah pertanyaan yang sangat penting bagi siapa saja yang menjalankan drive OCZ Vertex2 ... menangguhkan / hibernate dapat langsung melenyapkan drive tersebut tanpa harapan memulihkan satu byte. :(
Russ

Jawaban:

6

Pemicu untuk hibernasi:

  • Tekan tombol Hibernate di Kickoff -> Tinggalkan -> Hibernate
  • Tekan Hibernate pada ikon Energy di baki sistem
  • Kirim sinyal dbus: qdbus org.kde.kded /modules/powerdevil suspend 4

Ketika hibernasi dipicu, ini adalah alur eksekusi:

  1. /usr/lib/hal/scripts/linux/hal-system-power-hibernate-linux disebut
  2. /usr/sbin/pm-hibernate disebut dengan beberapa argumen
  3. Logging mulai /var/log/pm-suspend.log
  4. Kait dijalankan untuk mempersiapkan hibernasi. Kait ini terletak di /usr/lib/pm-utils/sleep.d/dan /etc/pm/sleep.d, dan diurutkan berdasarkan nama (angka pertama)
  5. performing hibernate ditulis ke log
  6. Fungsi shell do_hibernatedipanggil, memerintahkan sistem untuk hibernasi
  7. Ketika sistem melanjutkan, kait dijalankan untuk memulihkan dari hibernasi
  8. Sistem berjalan lagi

Untuk menonaktifkan hibernasi, buat /etc/pm/sleep.d/000no-hibernationdengan konten berikutnya:

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

Seperti 000no-hibernationyang dipanggil sebelum skrip suka 00logging(modul output dan info memori dalam log), tidak ada aplikasi atau modul yang terganggu atau dibongkar. Nama ini terinspirasi oleh /usr/lib/pm-utils/sleep.d/000kernel-change. Waspadai bug # 665651 yang membuat nilai balik hook tidak nol gagal untuk membatalkan penangguhan atau hibernasi.

Ini memperbaiki masalah hibernasi untuk saya. Meskipun layar terkunci, saya bisa hidup dengan ini. Ini jauh lebih baik dibandingkan dengan sistem crash.

Lekensteyn
sumber
Saya telah menambahkan || trueuntuk mencegah exitcode bukan nol, yang mencegah penangguhan. Diuji bekerja untuk menangguhkan dan memblokir hibernasi.
Lekensteyn
Jawaban bagus! Sangat teliti .. Terima kasih telah memposting apa yang Anda temukan. Memperluasnya, skrip ini (dari laporan bug yang Anda tautkan) dengan bersih menghentikan hibernasi dan menangguhkan. Mengedit untuk melakukan salah satunya saja sepele.
Russ