สองตัวเลือก
ตัวเลือกแรก (รายการที่สอง) คือการตรวจสอบjournalctlข้อผิดพลาดที่เป็นไปได้ที่เกี่ยวข้องกับการไฮเบอร์เนต หากตัวเลือกแรกไม่ให้ผลลัพธ์ผลลัพธ์ตัวเลือกที่สองคือการสร้างสคริปต์ตัวตัดที่แทนที่pm-hibernateด้วย `Hibernate
สร้างสคริปต์ Wrapper
การสร้างสคริปต์เสื้อคลุมช่วยที่จะมาแทนที่hibernatepm-hibernate
ค้นหาคำสั่งไดเรกทอรีอยู่ใน
ก่อนที่จะสร้างสคริปต์ตัวตัดคำคุณจำเป็นต้องรู้ว่าไดเรกทอรีใดอยู่hibernateและpm-hibernateคำสั่งนั้นอยู่ ใช้สองคำสั่งนี้:
$ locate bin/hibernate
/mnt/c/Program Files (x86)/CyberPower PowerPanel Business Edition/bin/hibernate.dll
$ locate bin/pm-hibernate
/mnt/clone/usr/sbin/pm-hibernate
/mnt/old/usr/sbin/pm-hibernate
/usr/sbin/pm-hibernate
/usr/sbin/pm-hibernateสคริปต์เสื้อคลุมคุณต้องการสร้างจะเป็น ฉันไม่ได้hibernateติดตั้งแพ็คเกจดังนั้นการค้นหาครั้งแรกจะพบยูทิลิตี้ของ Windows เท่านั้น ตามรายชื่อไฟล์แพ็คเกจควรเปิดเผย/usr/sbin/hibernateพร้อมกับไฟล์อื่น ๆ สองสามไฟล์
สำรองไฟล์ต้นฉบับ
ก่อนอื่นเราต้องการสร้างสำเนาสำรองออนไลน์ของไฟล์ต้นฉบับ:
sudo cp -a /usr/sbin/pm-hibernate /usr/sbin/pm-hibernate.bak
ถัดไปลบไฟล์ต้นฉบับ:
sudo rm -f /usr/sbin/pm-hibernate
สร้างสคริปต์ wrapper
หมายเหตุ:แทนสคริปต์เสื้อคลุมหลายคนพบว่ามันง่ายที่จะสร้างการเชื่อมโยงสัญลักษณ์สำหรับpm-hibernateการhibernate: วิธีการสร้างอ่อนหรือการเชื่อมโยงสัญลักษณ์?
ฉันชอบที่จะใช้geditสำหรับการแก้ไข แต่คุณสามารถแทนที่ด้วยnanoหรือvimหรือสิ่งที่คุณต้องการแก้ไข:
sudo -H gedit /usr/sbin/pm-hibernate
ไฟล์ว่างจะปรากฏขึ้น วางในบรรทัดต่อไปนี้
#!/bin/bash
# Wrapper script to replace pm-hibernate with hibernate package
/usr/sbin/hibernate "$@"
แปลงสคริปต์ wrapper เป็น executable
ในขณะนี้สคริปต์แรปเปอร์เป็นไฟล์ปกติ เราจำเป็นต้องแปลงเป็นวัตถุที่ปฏิบัติการได้:
sudo chmod a+x /usr/sbin/pm-hibernate
ตอนนี้เรามีสคริปต์ตัวตัดคำปฏิบัติการเพื่อให้ทุกครั้งpm-hibernateถูกเรียกhibernateใช้แทน ตามที่กล่าวไว้ด้านบนคุณควรตรวจทานjournalctlก่อน (อธิบายต่อไป) ก่อนสร้างสคริปต์ตัวตัดคำ
ทบทวน journalctl
คุณสามารถgrepใช้ข้อความไฮเบอร์เนตjournalctlเพื่อแก้ไขปัญหาที่อาจเกิดขึ้นได้
ฉันไม่ได้ใช้ไฮเบอร์เนต แต่ใช้การระงับชั่วคราว คำสั่งต่อไปนี้ช่วยให้ฉันเห็นข้อความทั้งหมดที่เกี่ยวข้องsuspendซึ่งคุณจะแทนที่ด้วยhibernate:
$ journalctl -b | grep -i suspend
Oct 09 22:26:33 alien eyesome[21740]: Lid Open/Close: Wait 3 seconds to see if suspending
Oct 09 22:26:48 alien systemd[1]: Starting TLP suspend/resume...
Oct 09 22:26:48 alien systemd[1]: Started TLP suspend/resume.
Oct 09 22:26:48 alien systemd[1]: Starting Suspend...
Oct 09 22:26:48 alien systemd-sleep[22938]: /lib/systemd/system-sleep/sound: Going to suspend...
Oct 09 22:26:48 alien eyesome[22952]: Wakeup: Going to suspend. Creating: /tmp/eyesome-is-suspending
Oct 09 22:26:49 alien systemd-sleep[22938]: Suspending system...
Oct 10 04:26:38 alien kernel: PM: Suspending system (mem)
Oct 10 04:26:38 alien kernel: Suspending console(s) (use no_console_suspend to debug)
Oct 10 04:26:38 alien kernel: PM: suspend of devices complete after 1142.044 msecs
Oct 10 04:26:38 alien kernel: PM: late suspend of devices complete after 19.766 msecs
Oct 10 04:26:38 alien kernel: PM: noirq suspend of devices complete after 61.505 msecs
Oct 10 04:26:38 alien kernel: Suspended for 21583.011 seconds
Oct 10 04:26:38 alien eyesome[23137]: Lid Open/Close: Wait 3 seconds to see if suspending
Oct 10 04:26:38 alien systemd-sleep[22938]: /lib/systemd/system-sleep/sound: Waking up from suspend...
Oct 10 04:26:38 alien eyesome[23168]: Wakeup: Called from suspend.
Oct 10 04:26:41 alien systemd[1]: Started Suspend.
Oct 10 04:26:41 alien systemd[1]: Stopping TLP suspend/resume...
Oct 10 04:26:41 alien systemd[1]: Reached target Suspend.
Oct 10 04:26:41 alien systemd[1]: suspend.target: Unit is bound to inactive unit systemd-suspend.service. Stopping, too.
Oct 10 04:26:41 alien systemd[1]: Stopped target Suspend.
Oct 10 04:26:42 alien systemd[1]: Stopped TLP suspend/resume.
Oct 10 04:26:52 alien eyesome[24459]: Daemon: Removed file: /tmp/eyesome-is-suspending
Oct 10 05:47:09 alien eyesome[12434]: Lid Open/Close: Wait 3 seconds to see if suspending
Oct 10 05:51:43 alien systemd[1]: Starting TLP suspend/resume...
Oct 10 05:51:44 alien systemd[1]: Started TLP suspend/resume.
Oct 10 05:51:44 alien systemd[1]: Starting Suspend...
Oct 10 05:51:44 alien systemd-sleep[28353]: /lib/systemd/system-sleep/sound: Going to suspend...
Oct 10 05:51:44 alien eyesome[28367]: Wakeup: Suspending. Creating /tmp/eyesome-is-suspending
Oct 10 05:51:45 alien systemd-sleep[28353]: Suspending system...
Oct 10 16:30:59 alien kernel: PM: Suspending system (mem)
Oct 10 16:30:59 alien kernel: Suspending console(s) (use no_console_suspend to debug)
Oct 10 16:30:59 alien kernel: PM: suspend of devices complete after 623.519 msecs
Oct 10 16:30:59 alien kernel: PM: late suspend of devices complete after 19.654 msecs
Oct 10 16:30:59 alien kernel: PM: noirq suspend of devices complete after 61.549 msecs
Oct 10 16:30:59 alien kernel: Suspended for 38348.943 seconds
Oct 10 16:30:59 alien eyesome[28563]: Lid Open/Close: Wait 3 seconds to see if suspending
Oct 10 16:30:59 alien systemd-sleep[28353]: /lib/systemd/system-sleep/sound: Waking up from suspend...
Oct 10 16:30:59 alien eyesome[28599]: Wakeup: Called from suspend.
Oct 10 16:31:02 alien systemd[1]: Started Suspend.
Oct 10 16:31:02 alien systemd[1]: Stopping TLP suspend/resume...
Oct 10 16:31:02 alien systemd[1]: Reached target Suspend.
Oct 10 16:31:02 alien systemd[1]: suspend.target: Unit is bound to inactive unit systemd-suspend.service. Stopping, too.
Oct 10 16:31:02 alien systemd[1]: Stopped target Suspend.
Oct 10 16:31:03 alien systemd[1]: Stopped TLP suspend/resume.
Oct 10 16:31:13 alien eyesome[30020]: Daemon: Removed file: /tmp/eyesome-is-suspending