Что делать, когда Linux Linux зависает

24

Я запускаю Gnome с compiz в Ubuntu 10.04. Иногда графический интерфейс зависнет. Я могу двигать мышью, но не могу взаимодействовать с программами. Единственное, что я могу сделать, - это перейти в окно терминала с помощью Alt + Ctrl + F (n). Оттуда я вхожу в систему и делаю перезагрузку sudo. Что еще я могу сделать в терминале вместо перезагрузки, чтобы справиться с этой проблемой, когда она появится?

tony_sid
источник

Ответы:

14

Одно решение, которое я использую время от времени, когда что-то сходит с ума, - это переключаться на другую консоль, используя Ctrl-AltFx (F1-F6). Ctrl-Alt-F7 вернет вас на графический экран. Это должно привести вас к текстовой подсказке для входа.

Если это не работает и вы установили OpenSSH (sudo apt-get install openssh), вы можете удаленно установить ssh на свой компьютер и получить то же приглашение.

После этого вы можете войти в систему под своим именем su, получить root и посмотреть, какое приложение запущено в данный момент. Это требует небольшого опыта работы с некоторыми командами, такими как ps, kill, grep и less.

ps - ef | Больше

Приведенная выше команда покажет вам все процессы, запущенные в данный момент, и у вас появится приглашение «Ещё ...», чтобы взять галстук, чтобы прочитать вывод.

убить -9 ####

Приведенная выше команда уничтожит процесс с номером ####.

ps -ef | grep ora | Больше

Приведенная выше команда покажет вам все процессы с буквами «ora», такие как программы Oracle. Также позволит вам увидеть «Больше ...» подсказки.

Вы должны быть осторожны при этом. Вы можете убить всю систему. Мой способ сделать это - посмотреть на процессы внизу списка, в которых будут запущены последние процессы. Скорее всего, это те, которые заморозили систему, и их уничтожение может привести к разморозке среды Х без фактического перезапуска всей системы. В списке процессов вы увидите два числа. Первый (самый левый) - это номер процесса, а рядом с ним - процесс, который его запустил.

В командах процессов вы можете узнать имена последних запущенных вами программ и убить их первыми.

В лучшем случае вы можете найти и убить оскорбительную программу. В худшем случае вы заморозите систему, пока не включите ее. Действуйте осторожно ............................

Но у вас есть возможность скопировать важные файлы, выполнить другие операции и т. Д.

jfmessier
источник
8

Как сказал private_meta, вы, вероятно, захотите перезапустить X. Это остановит все процессы GUI, включая все процессы, запущенные из окна терминала GUI.

Ctrl + Alt + Backspace не работает в Ubuntu, они отключили этот ярлык. Вы можете включить его (не помню точно, как, но это должно быть легко для Google) или просто использовать правильную комбинацию, которая является SysRq + K. SysRq может быть вторичной функцией другой клавиши в некоторых макетах, например, для qwertz-клавиатура, которую вы нажимаете AltGr + Print + K.

Прочее использование комбинаций клавиш SysRq можно прочитать в этой статье Википедии . Это дает вам больший контроль над системой, чем вам, вероятно, потребуется.

rumtscho
источник
1
Как включить Ctrl-Alt- Backspace ubuntugeek.com/…
Матиас Крулл
Я только что попробовал Alt + SysRq + K на незамерзающей системе, и он дал мне белый пустой экран, где я ничего не могу сделать (иначе полная заморозка?). Как это может быть полезно, или что я сделал не так?
phunehehe
4

В последних версиях Ubuntu (с поддержкой upstart) вы можете набрать:

sudo restart gdm

Иногда вы не можете переключиться на текстовую консоль, но тогда все еще возможно войти в систему, используя ssh с другого компьютера. Перезапуск gdm также возможен и может исправить зависание драйвера дисплея.

IanH
источник
1
Что это делает с программами, которые работали в графическом интерфейсе?
tony_sid
2
Все они прекращены, потому что теряют связь с X.
IanH
2

Если ALT F (n) и мышь все работают, вы также можете попытаться преднамеренно убить отдельные программы, чтобы посмотреть, выпустит ли одна из них что-либо. Это менее технически, но это быстрый способ ориентироваться на графическом интерфейсе, чтобы увидеть, если что-то недавно началось, это проблема.

ALT-F2: чтобы вызвать диалог запуска программы, который, по моему опыту, обычно работал, даже когда все остальное заблокировано.

xkill: для принудительного закрытия приложения с графическим интерфейсом.

Нажмите на оскорбительное приложение и посмотрите, что произойдет.

Деннис
источник
1

В большинстве случаев должна быть возможность перезапустить диспетчер окон с помощью Ctrl + Alt + Backspace. Хотя это убивает ваши приоритетные приложения, это еще не полная перезагрузка, это может быть компромиссом для вас.

private_meta
источник
1
это отключено по умолчанию с 9.04, поэтому не будет работать. вместо перезагрузки вы можете набрать /etc/init.d/gdm restart.
Матиас Крулл
0

После зависания графического интерфейса компьютера ... Я думаю, что перезагрузка - это лучшее, что вы можете сделать, если у вас нет чего-то важного и долго работающего в фоновом режиме ... В любом случае, перезапуск gdm убьет ваши приложения.

Laurent
источник
0

Откройте виртуальный терминал с помощью клавиши CTRL- ALT- F[number], войдите в систему sudo killall [dm](где [dm]находится один из и gdm, gdm3, kde, wdm, lightdm, lxdm,т. Д.) И начните новый сеанс x сstartx

Если вы не убьете дм, это не будет иметь большого значения. Замороженный / зависший дм не использует большое количество вычислительной мощности.

cepkos
источник