Как я могу понять, почему Suspend иногда не работает?

Что-то иногда вызывает сбой приостановки. Когда происходит сбой, система останавливается с черным экраном и остается включенной, не останавливаясь. Это заставляет меня держать кнопку питания, пока система не выключится.

Единственное отличие настроек, которое я имею от большинства людей, заключается в том, что я не использую опцию, которая позволяет приостановить работу, когда крышка ноутбука закрыта. Таким образом, открытие и закрытие крышки ноутбука не имеет никаких действий. Мне нравится нажимать приостановить вручную. Может ли это изменение предпочтения быть причиной?

Как я могу начать искать причину сбоя, поскольку сбой не отображает ошибки?

16
задан 2 July 2012 в 04:53

2 ответа

Нет, отключение функции «приостановка при закрытии крышки» не может повлиять на ручное приостановление.

Вы начнете с поиска выходных данных dmesg и содержимого /var/log/kern.log и /var/log/syslog для подсказок.

Мы можем попытаться помочь, если вы поделитесь этим с нами. Смотрите этот вопрос, чтобы узнать, как:

Как я могу легко поделиться результатами команды или текстового файла с другими?

0
ответ дан 2 July 2012 в 04:53

Я не думаю, что упомянутое вами урегулирование имеет какое-либо отношение к этому.

Проверьте /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, в котором будет записана попытка приостановить и запустить ваш скрипт.

0
ответ дан 2 July 2012 в 04:53

Другие вопросы по тегам:

Похожие вопросы: