สองตัวเลือก
ตัวเลือกแรก (รายการที่สอง) คือการตรวจสอบjournalctl
ข้อผิดพลาดที่เป็นไปได้ที่เกี่ยวข้องกับการไฮเบอร์เนต หากตัวเลือกแรกไม่ให้ผลลัพธ์ผลลัพธ์ตัวเลือกที่สองคือการสร้างสคริปต์ตัวตัดที่แทนที่pm-hibernate
ด้วย `Hibernate
สร้างสคริปต์ Wrapper
การสร้างสคริปต์เสื้อคลุมช่วยที่จะมาแทนที่hibernate
pm-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