Два варіанти
Перший варіант (перерахований другий) - перевірити journalctlможливі повідомлення про помилки, пов’язані зі сплячкою. Якщо перший варіант не дає результатів, другий варіант - створити скрипт для обгортки, який заміняється pm-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
Створіть сценарій обгортки
Примітка: замість обгортка сценарію багато хто знаходить його простіше створити символічне посилання для , 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 "$@"
Перетворити скрипт обгортки у виконуваний файл
В даний час сценарій обгортки є звичайним файлом. Нам потрібно перетворити його на виконуваний об’єкт:
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