Hai lựa chọn
Tùy chọn đầu tiên (được liệt kê thứ hai) là xem xét journalctlcác thông báo lỗi có thể liên quan đến chế độ ngủ đông. Nếu tùy chọn đầu tiên không tạo ra kết quả, tùy chọn thứ hai là tạo tập lệnh bao bọc thay thế pm-hibernatebằng `hibernate.
Tạo tập lệnh Wrapper
Tạo một kịch bản lệnh bao bọc cho phép hibernatethay thế pm-hibernate.
Các lệnh tìm thư mục được đặt trong
Trước khi tạo tập lệnh bao bọc, bạn cần biết thư mục nào hibernatevà pm-hibernatecác lệnh nằm trong đó. Sử dụng hai lệnh sau:
$ 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
Kịch bản trình bao bọc bạn muốn tạo sẽ là /usr/sbin/pm-hibernate. Tôi chưa hibernatecài đặt gói để tìm kiếm đầu tiên chỉ tìm thấy tiện ích Windows. Theo danh sách tập tin gói , nó sẽ tiết lộ /usr/sbin/hibernatecùng với một vài tập tin khác.
Sao lưu tập tin gốc
Đầu tiên chúng tôi muốn tạo một bản sao lưu trực tuyến của tệp gốc:
sudo cp -a /usr/sbin/pm-hibernate /usr/sbin/pm-hibernate.bak
Tiếp theo xóa tệp gốc:
sudo rm -f /usr/sbin/pm-hibernate
Tạo tập lệnh bao bọc
Lưu ý: thay vì một wrapper kịch bản nhiều thấy nó dễ dàng hơn để tạo ra một liên kết tượng trưng cho pm-hibernateđến hibernate: Làm thế nào để tạo ra một phần mềm hoặc liên kết tượng trưng?
Tôi thích sử dụng geditđể chỉnh sửa nhưng bạn có thể thay thế nó bằng nanohoặc vimhoặc bất cứ trình soạn thảo bạn thích:
sudo -H gedit /usr/sbin/pm-hibernate
Một tập tin trống sẽ xuất hiện. Dán vào các dòng sau
#!/bin/bash
# Wrapper script to replace pm-hibernate with hibernate package
/usr/sbin/hibernate "$@"
Chuyển đổi tập lệnh bao bọc để thực thi
Hiện tại tập lệnh bao bọc là một tập tin thông thường. Chúng ta cần chuyển đổi nó thành một đối tượng thực thi:
sudo chmod a+x /usr/sbin/pm-hibernate
Bây giờ chúng ta có một kịch bản trình bao bọc hoạt động để mỗi lần pm-hibernateđược gọi là hibernatechạy. Như đã đề cập ở trên cùng, bạn nên xem lại journalctltrước (mô tả tiếp theo) trước khi tạo tập lệnh bao bọc.
Ôn tập journalctl
Bạn có thể grepnhắn tin ngủ đông journalctlcho các vấn đề có thể xảy ra.
Tôi không sử dụng ngủ đông nhưng tôi sử dụng tạm ngưng. Lệnh sau cho phép tôi xem tất cả các tin nhắn liên quan đến suspendmà bạn sẽ thay thế bằng 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