Як я можу зрозуміти, чому зупинка часом не вдається?


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?
Рамеш-Х
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.