Как я могу выяснить, почему приостановить иногда не удается?

17

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

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

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

Исаак
источник

Ответы:

6

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

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

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

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

иш
источник
17

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

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

деревенщина
источник
Мне также нужна была другая строка: (killall -9 mount.nfs; выход 0), потому что иногда она работает не только с SIGUP.
Хуанин
@Juanin: -9лучше, я не знаю, почему у меня только -1во-первых, редактируется сейчас.
Карл
Интересно, в каком проценте случаев проблема заключается в подключении к сети в реальном времени (как показано здесь). Это тоже была моя проблема - но это было sshfsне так nfs.
nobar
Если существует более одной задачи, отказывающейся заморозить, это может быть связано с этой ошибкой: bugs.launchpad.net/ubuntu/+source/systemd/+bug/1676912
mhellmeier
Этот метод работает в Ubuntu 18.04 также .. ??
Рамеш-Икс