Что-то иногда вызывает сбой приостановки. Когда происходит сбой, система останавливается с черным экраном и остается включенной, не останавливаясь. Это заставляет меня держать кнопку питания, пока система не выключится.
Единственное отличие настроек, которое я имею от большинства людей, заключается в том, что я не использую опцию, которая позволяет приостановить работу, когда крышка ноутбука закрыта. Таким образом, открытие и закрытие крышки ноутбука не имеет никаких действий. Мне нравится нажимать приостановить вручную. Может ли это изменение предпочтения быть причиной?
Как я могу начать искать причину сбоя, поскольку сбой не отображает ошибки?
Нет, отключение функции «приостановка при закрытии крышки» не может повлиять на ручное приостановление.
Вы начнете с поиска выходных данных dmesg
и содержимого /var/log/kern.log
и /var/log/syslog
для подсказок.
Мы можем попытаться помочь, если вы поделитесь этим с нами. Смотрите этот вопрос, чтобы узнать, как:
Как я могу легко поделиться результатами команды или текстового файла с другими?
blockquote>
Я не думаю, что упомянутое вами урегулирование имеет какое-либо отношение к этому.
Проверьте /var/log/pm-suspend.log
и посмотрите, дает ли он какую-либо подсказку.
Эти проблемы обычно возникают из-за того, что некоторые процессы не позволяют системе приостановить работу.
Выполните
dmesg -T|grep Freez -A4
и найдите следующие записи:
--
[sun mar 3 15:19:48 2013] Freezing user space processes ...
[sun mar 3 15:20:08 2013] Freezing of tasks failed after 20.01 seconds (3 tasks refusing to freeze, wq_busy=0):
[sun mar 3 15:20:08 2013] mount.nfs D e8631aa0 0 5518 5517 0x00800004
[sun mar 3 15:20:08 2013] e8631b10 00000086 f7bc0e00 e8631aa0 c1053cb4 c1809020 c192ee00 c192ee00
--
Проверьте отметки времени, чтобы увидеть, какие из зарегистрированных проблем связаны с вашей попыткой приостановить. В этом случае именно mount.nfs
вызывает проблемы.
Теперь, поместите сценарий в /etc/pm/sleep.d/
, сценарии там будут выполняться при приостановке и возобновлении. Имя файла должно начинаться с порядкового номера 00-49 для пользовательских сценариев (подробнее см. man pm-suspend
).
Сценарий может выглядеть следующим образом
#!/bin/sh
(killall -9 mount.nfs; exit 0)
с соответствующими записями для других процессов, вызвавших проблемы, если таковые имеются.
Скобки и exit 0
- хитрость: если процесс не найден, killall
выйдет с кодом выхода 1, что отменит весь режим приостановки. Выше будет работать killall
в под-оболочке, которая будет выходить с 0.
Если у вас возникли проблемы, установите флажок /var/log/pm-suspend.log
, в котором будет записана попытка приостановить и запустить ваш скрипт.