ฉันจะปิดการใช้งานไฮเบอร์เนตใน Kubuntu ได้อย่างไร?


11

ฉันเห็นคำตอบเกี่ยวกับการปิดการจำศีล แต่ฉันไม่มีไฟล์ดังกล่าว อาจเป็นเพราะข้อเสนอแนะนั้นเขียนขึ้นสำหรับ Ubuntu ไม่ใช่Kubuntu (KDE ไม่ใช่ Gnome)

ฉันไม่มี swapบน SSD ที่เข้ารหัสของฉันระบบของฉันค้าง (ไม่สามารถเปลี่ยน Caps Lock) ถ้าฉันกดปุ่ม "Hibernate" ที่ "Energy management" โดยไม่ตั้งใจ แป้นพิมพ์ของฉันมีปุ่มไฮเบอร์เนต ( Fn+ F4) ติดกับปุ่มควบคุมระดับเสียงและทุกครั้งที่ฉันกดปุ่มผิดระบบจะหยุดทำงาน

ดังนั้นวิธีการปิดการใช้งานที่ถูกต้องคืออะไร? หากไม่มีวิธีแก้ปัญหาเราก็ยินดีให้คุณแก้ไขปัญหาด้วยเช่นกัน


+1 สิ่งนี้ (และการปิดใช้งานการระงับ) เป็นคำถามที่สำคัญมากสำหรับทุกคนที่ใช้งานไดรฟ์ OCZ Vertex2 ... การระงับชั่วคราว / ไฮเบอร์เนตสามารถลบล้างไดรฟ์ได้ทันทีโดยไม่หวังว่าจะสามารถกู้คืนไบต์เดียวได้ :(
Russ

คำตอบ:


6

ทริกเกอร์สำหรับการไฮเบอร์เนต:

  • กดปุ่มไฮเบอร์เนตในสนาม -> ออก -> ไฮเบอร์เนต
  • กดไฮเบอร์เนตที่ไอคอนพลังงานในซิสเต็มเทรย์
  • ส่งสัญญาณ 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. hooks ถูกดำเนินการเพื่อเตรียมพร้อมสำหรับการจำศีล hooks เหล่านี้ตั้งอยู่ที่/usr/lib/pm-utils/sleep.d/และ/etc/pm/sleep.dและเรียงตามชื่อ (หมายเลขแรก)
  5. performing hibernate ถูกเขียนลงในบันทึก
  6. ฟังก์ชั่นเชลล์do_hibernateเรียกว่าสั่งให้ระบบจำศีล
  7. เมื่อระบบดำเนินการต่อ hooks จะถูกเรียกใช้เพื่อเรียกคืนจากโหมดไฮเบอร์เนต
  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ซึ่งทำให้ค่าส่งคืนของ hooks ไม่เป็นศูนย์ล้มเหลวในการยกเลิกการหยุดชั่วคราวหรือไฮเบอร์เนต

วิธีนี้ช่วยแก้ไขปัญหาการจำศีลสำหรับฉัน แม้ว่าหน้าจอจะล็อค แต่ฉันก็สามารถใช้ชีวิตกับสิ่งนี้ได้ มันดีกว่าเมื่อเทียบกับระบบล่ม


ฉันได้เพิ่ม|| trueเพื่อป้องกัน exitcode ที่ไม่เป็นศูนย์ซึ่งป้องกันการหยุดชั่วคราว ผ่านการทดสอบการทำงานสำหรับการหยุดชั่วคราวและการปิดกั้นไฮเบอร์เนต
Lekensteyn

คำตอบที่ดี! อย่างละเอียดมากขอบคุณสำหรับการโพสต์สิ่งที่คุณพบ นอกจากนี้สคริปต์นี้ (จากรายงานข้อผิดพลาดที่คุณเชื่อมโยง) จะหยุดทั้งจำศีลและหยุดชั่วคราว การแก้ไขเพื่อทำเพียงหนึ่งในนั้นก็ไม่สำคัญเช่นกัน
Russ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.