Как исправить не реагирующую систему Ubuntu?

22

Я использую Ubuntu. Иногда система не реагирует с помощью мыши и клавиатуры. Есть ли способ решить эту проблему, кроме нажатия кнопки сброса на машине?

user297850
источник
1
это сложный вопрос, потому что вы не дадите нам многого, чтобы продолжать ... если бы это был я, я бы нажал CTRL + ALT + F [1..6], авторизовался и убил некоторые процессы. но я почти всегда знаю, что делает мою машину безразличной, а ты нет. и , кроме того, иногда я пишу программы , которые я знаю, собираюсь сделать это не отвечает, потому что я хочу , чтобы результат программы.
ixtmixilix
Вы уверены, что система перестает отвечать на запросы или система все еще работает, но устройства ввода перестают работать?
Бобби

Ответы:

35

Если вам нужен способ перезагрузки, без сохранения открытых документов, но без нажатия кнопки сброса, то есть способы, которые с меньшей вероятностью могут привести к потере данных. Во- первых, попробуйте Ctrl+ Alt+ F1. Это должно привести вас к виртуальной консоли , как сказал ixtmixilix . Как только вы окажетесь в виртуальной консоли, Ctrl+ Alt+ Deleteвыключится и перезагрузит компьютер.

Если такой метод не работает, всегда есть Alt+ SysRq+REISUB .

Что касается решения проблемы без перезагрузки, без дополнительной информации о том, что происходит, было бы трудно дать хороший ответ. Если бы вы могли описать обстоятельства, при которых это происходит (лучший способ сделать это - отредактировать свой вопрос, чтобы добавить информацию), то это может помочь людям дать хорошие ответы. Еще одна вещь, которую следует учитывать, это то, что, если ваш компьютер перестает отвечать на запросы - особенно если для запуска виртуальной консоли Ctrl+ Alt+ требуется более нескольких секунд, F1то вы почти наверняка обнаружите ошибку, и, сообщив об этом, вы сможете оба помогают сообществу и, возможно, получают ответ.

GUI глюки, вызывающие не отвечающие WM или X11 / Wayland

Это может происходить из-за взаимодействия между приложением и оконным менеджером - или сервером X11 или Wayland. Это признак того, что проблема заключается в том, что приложение перестает отвечать на запросы и не позволяет вводить данные с клавиатуры или мыши в другие окна приложения. (Ни одно приложение не должно быть в состоянии сделать это; у некоторого компонента GUI должна быть ошибка в этом, чтобы это произошло.) Если это то, что происходит, то вы можете убить вызывающий беспокойство процесс в виртуальной консоли (как на ixtmixilix намекали):

  1. Нажмите Ctrl+ Alt+ F1.

  2. Войдите в систему. Вы ничего не увидите при вводе пароля. Это нормально.

  3. Используйте утилиту, например, psчтобы узнать имя процесса программы-нарушителя. Иногда это легко в Ubuntu, а иногда нет. Например, имя процесса диспетчера архивов file-roller. Если у вас возникли проблемы с ее выяснением, вы обычно можете найти информацию в Интернете без особых проблем (или, если не можете, вы можете задать вопрос об этом).

    Вы можете передать psвывод, grepчтобы сузить дело. Предположим, что это был менеджер архива, который был причиной проблемы. Тогда вы можете запустить:

    ps x | grep file-roller
    

    Вы увидите запись для вашей собственной grepкоманды плюс запись для file-roller.

  4. Попытка убить оскорбительный процесс с помощью SIGTERM. Это дает ему возможность в последнюю минуту выполнить очистку, например очистить файловые буферы, сигнализировать удаленным серверам о том, что он собирается отключиться (для протоколов, которые делают это), и освободить другие виды ресурсов. Для этого используйте killкоманду:

    kill PID

    где PID- идентификатор процесса, который вы хотите убить, полученный при выполнении psна шаге 3.

  5. SIGTERMэто способ твердо попросить процесс выйти. Процесс может игнорировать этот сигнал и будет делать это при сбое при определенных обстоятельствах. Так что вы должны проверить, чтобы это работало. Если это не так, убейте его SIGKILL, который он не может игнорировать, и который всегда работает, за исключением редкого случая, когда процесс находится в непрерывном сне (или если он на самом деле не запущен, а скорее является процессом зомби ).

    Вы можете как проверить, запущен ли процесс, так и убить его, SIGKILLесли он есть, с помощью одной команды:

    kill -KILL PID

    Если вы получаете сообщение, как , вы знаете, убивая его сработало. Если вы не получаете вывод, вы знаете, что не работает. В этом случае, вероятно, сделал, но стоит проверить, запустив его снова. (Нажмите клавишу со стрелкой вверх, чтобы вызвать предыдущие команды, для удобства ввода.)kill: (PID) - No such processSIGTERMSIGTERMSIGKILL

  6. В редких случаях для ваших собственных процессов или всегда с процессами, принадлежащими вам rootили другому пользователю, кроме вас, вы должны уничтожить процесс как root. Чтобы сделать это, добавьте sudo (включая завершающий пробел) перед указанными выше killкомандами. Если вышеперечисленные команды не работают , или вы сказали , что вы не имеете необходимый доступ , чтобы убить процесс, попробуйте это как rootс sudo.

(Кстати, kill -KILLэто то же самое, что и широко популярный kill -9. Я рекомендую, kill -KILLпотому что SIGKILLне гарантированно иметь в 9качестве номера сигнала на всех платформах. Он работает на x86, но это не значит, что он обязательно будет работать везде. Таким образом, kill -KILLс большей вероятностью успешно завершит процесс, чем kill -9. Но они эквивалентны на x86, так что не стесняйтесь использовать его там, если хотите.)

Если вы знаете, что нет других процессов с тем же именем, что и тот, который вы хотите уничтожить, вы можете использовать killallвместо killи имя процесса вместо его идентификатора.

Процесс, монополизирующий ресурсы процессора

Если процесс выполняется с наивысшим приоритетом или очень близко к нему (или для его правильного определения, с наименьшей вероятностью или вблизи него ), он может сделать ваш графический пользовательский интерфейс полностью или почти полностью не отвечающим. Однако в этой ситуации вы, скорее всего, не сможете переключиться на виртуальную консоль и выполнить команды (или даже перезагрузить компьютер).

Если процесс или комбинация процессов, выполняющихся с нормальным или умеренно повышенным приоритетом, замедляют работу вашей машины, вы сможете убить их, используя технику, описанную в разделе выше. Но если они являются графическими программами, вы также можете убить их, нажав кнопку закрытия на их окнах - среда рабочего стола даст вам возможность убить их, если они не отвечают. Если это не работает, конечно, вы можете (почти) всегда убивать их kill -KILL.

Проблемы ввода / вывода

Неисправный ввод-вывод может привести к длительной (даже постоянной) безответственности. Это может быть связано с ошибкой ядра и / или ошибочными драйверами. Частичный обходной путь - избежать тяжелых и одновременных операций чтения и / или записи (например, не копируйте два больших файла одновременно, в двух одновременных процессах копирования; не копируйте большой файл во время просмотра видео высокой четкости или установки ОС в виртуальной машине).

Это явно неудовлетворительно, и реальное решение - найти проблему и сообщить о ней. Если вы не используете основное ядро из kernel.org , об ошибках ядра следует сообщать в пакете linuxв Ubuntu (поскольку Ubuntu предоставляет специальные сборки ядра, которые включают в себя патчи, относящиеся к дистрибутиву, а сообщения об ошибках, не подтвержденные для основного ядра, будут отклоняться при kernel.org ). Вы должны сделать это, запустив ubuntu-bug linux(или apport-cli linux) на зараженной машине. Сначала посмотрите документацию по отчетам об ошибках в Ubuntu ; это объясняет, как сделать это правильно.

Проблемы с видеокартой

Некоторые блокировки графического интерфейса могут быть вызваны проблемами с графической картой. Есть несколько вещей, которые вы можете попробовать, чтобы облегчить это:

  1. Поищите в Интернете, чтобы узнать, сталкивались ли другие люди с аналогичными проблемами с той же видеокартой (и / или производителем и моделью машины) в Ubuntu или других дистрибутивах GNU / Linux. Могут быть решения, более конкретные, чем то, что я могу предложить в этом ответе, без более конкретной информации, чем в настоящее время в вашем вопросе.

  2. Посмотрите, есть ли другие видео драйверы для вас. Вы можете сделать это, отметив Дополнительные драйверы; Вы также можете выполнить поиск в Интернете, чтобы узнать, какие драйверы Linux доступны для вашей видеокарты. Наиболее проприетарными видеокартами являются Intel, AMD / ATi или Nvidia (перейдите по этим ссылкам, чтобы просмотреть документацию сообщества по установке и использованию проприетарных драйверов для этих плат в Ubuntu). Для Intel лучше всего придерживаться драйверов FOSS, которые есть в Ubuntu, но есть полезная информация, которую вы можете использовать. Независимо от того, какая у вас карта, эта общая информация может помочь.

    Если вы в настоящее время используете проприетарные драйверы, вы можете попробовать использовать другие проприетарные драйверы (например, напрямую от NVidia или AMD / ATi), или вместо этого вы можете попробовать использовать бесплатные драйверы с открытым исходным кодом.

  3. Попробуйте выбрать тип графического сеанса входа в систему , который не требует / использует ускорение графики. Для этого выйдите из системы и на графическом экране входа в систему щелкните логотип Ubuntu или значок шестеренки рядом с вашим именем пользователя. Раскрывающееся меню показано. Измените выбор с Ubuntu на Ubuntu 2D . Это заставляет вас использовать Unity 2D вместо Unity . (Если вы используете GNOME Shell , вы можете вместо этого выбрать GNOME Fallback / GNOME Classic .) Если есть сомнения, и есть выбор, который говорит «без эффектов», выберите его, так как это, вероятно, самый безопасный.

    Этот вопрос содержит дополнительную информацию о различных графических интерфейсах, которые вы можете выбрать в Ubuntu.

  4. В более новых версиях Ubuntu вы можете выбирать между X.org и Wayland на экране входа в систему. Что бы вы ни использовали, попробуйте другой. Иногда проблему с Wayland можно решить с помощью X.org или наоборот.

  5. Сообщить об ошибке.

Надеемся, что приведенная выше информация дала некоторую общую информацию о том, что может быть причиной такого рода проблем. Оно также должно помочь вам определить, какую информацию вам может пригодиться для добавления к вашему вопросу (в зависимости от конкретных деталей проблемы), чтобы получить возможность получить еще лучший ответ. (Или для улучшения этого ответа с дополнительной информацией, специфичной для вашей ситуации.)

Элия ​​Каган
источник
1
Приятно выполненные советы по устранению неполадок зависает.
Крутые персонажи
Если клавиатура перестает реагировать, невозможно использовать Ctrl + Alt + FN
szx
6

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

Чтобы включить это, откройте Системные настройки -> Параметры раскладки клавиатуры (или используйте keyboardкоманду в интерфейсе Unity, нажмите AltF2) и отметьте эту опцию:

Ctrl + Alt + Backspace

введите описание изображения здесь

Поэтому, когда он зависает, CtrlAltBackspaceнажатие убивает X-сервер, и lightdm перезапускает интерфейс входа

маргаритка
источник
Alt+Print+Kбудет делать то же самое из коробки, нет?
Бобби