Як визначити і вбити процес вивішування, коли система висить і повільно реагує на введення користувача?


24

Нещодавно, коли я намагався відкрити відео з VLC, моя система сповільнилася, веб-браузер із відкритими програмами, VLC та файловий менеджер та інші більше не реагували. Миша просто реагувала ще дуже повільно.

На машині Windows я натиснув би клавішу CTRL-ALT-DEL, щоб відкрити менеджер завдань, шукати процес, який спричинив зависання та вбив його.

Оскільки я досить новачок із використанням linux, я не з'ясував найкращої практики для вирішення такої ситуації в Ubuntu.

Яким швидким та ефективним способом ви б рекомендували визначити процес вивішування та закрити його, коли система вже дуже повільно реагує на введення користувача?

Відповіді:


32

Є два основні способи ідентифікації завислих процесів. Один - через GUI системного монітора, а інший - через topкомандний рядок.

Монітор системи

Це можна знайти в Системі> Адміністрація

рахунок

Ви також можете створити комбінацію клавіш для цього в цій статті .

Після запуску графічного інтерфейсу ви можете вибрати вкладку «Процеси», на якій будуть перераховані всі запущені процеси. Сортуйте за стовпцем CPU, щоб знайти найбільш інтенсивне завдання CPU

ЦП

Нарешті, ви можете клацнути правою кнопкою миші це завдання і вирішити його закінчити, зупинити або вбити. Вбивство негайно зупинить і видалить цей процес із системи.

вбити

Командний рядок

Якщо у вас відкритий термінал, ви можете просто ввести topцей список, перелічивши всі запущені процеси, схожі на вкладку "Процеси" в графічному інтерфейсі.

верх

У верхній частині це процесор, відсортований за замовчуванням - тож у верхній частині найбільш інтенсивні CPU завдання знаходяться вгорі. Ви можете будь-коли натиснути лист, kщоб припинити процес

к

Просто введіть PID процесу, який ви хочете вбити, і натисніть клавішу Enter. Він попросить надіслати сигнал Kill. Щоб вбити процес, гарненько використовуйте типовий 15 - вбити його відразу "Не проходьте, не збирайте 200 доларів", використовуйте 9.

sigkill

Потім процес буде припинено.

Якщо у вас є млявий інтерфейс, ви можете спробувати SSH віддалено, якщо це ввімкнено - або переключитися на віртуальну консоль за допомогою Ctrl+ Alt+ F#Де F#функціональна клавіша (F3, F4, F5 тощо). Щоб повернутися до робочого середовища, переключіться на F7 або F8 залежно від вашої версії Ubuntu.


5
Чудова відповідь. Зазвичай я призначаю ярлик CTRL + ESC системному монітору. Це дає мені швидкий доступ до процесу вбивства.
Хав'єр Рівера

@Marco Ceppi: де зникли зображення?
enzotib

@enzotib Повідомлення оновлено
Marco Ceppi

1
+1 для монітора системи. Це може вбити / зупинити висячий процес VLC, який htop не міг зробити.
malisokan

@malisokan Ви впевнені, що htopне можете цього зробити? Ви можете надіслати SIGKILL, щоб убити будь-який процес висіння, на який ви маєте права.
Вал каже: Відновити Моніку

4

Додайте System Monitorаплет на свою панель ( клацніть правою кнопкою миші на панелі, виберіть Add to Pannelі знайдіть Система монітора) та натисніть на неї правою кнопкою миші, щоб відкрити додаток System Monitor.

Ви можете запустити додаток System Monitor, натиснувши Alt+F2та запустивши програму gnome-system-monitor.

Перейдіть на вкладку "Процеси" і клацніть правою кнопкою миші додаток, яке ви збираєтеся вбити .


3

Більшість з них вже сказали (мені подобається відповідь Марко Чеппі), але є також аплет "Примусовий вихід", який ви можете додати до своєї панелі GNOME. Клацніть правою кнопкою миші на панелі та виберіть "Додати до панелі ...":

alt текст

Це дозволяє вийти з підвісної програми, просто натиснувши на її вікно. Дуже швидко та ефективно.


При запуску Unity в 11.04, звичайно, ця програма більше не буде доступна. Існує проект заміни Indicator-Forceclose, але він не входить у сховища.

Крім того, ми могли бігти xkillз терміналу.


Це лише знищує вікно чи також вбиває процес?
Вал каже: Відновити Моніку

@val це вбиває процес, який створив вікно.
Таккат

Тільки перевірений: це не так. Я зробив програму, яка зависла всередині зворотного виклику GTK і вбила її xkill. Вікно зникло, але програма продовжувала працювати (або зависати, якщо вам зручніше). Тому відповідь - ні, вона може не вбити програму, якщо вона серйозно застрягла.
Вал каже Відновити Моніку

@val, звичайно, після того, як ваша програма викликала інший процес створення вікна xkill, вбиватиме лише цей додатковий процес. Це особливо важливо знати для програм, які працюють без X-сервера, але викликають X для перегляду вікон. Очевидно, було б неможливо вбити будь-яку подібну програму з сервера X.
Таккат

Моя програма не викликала іншого процесу для цього. Я зробив програму, яка є такою ж, як і будь-яка програма GTK там, і змусила її висіти. xkillне впливає на такі процеси (GTK спричинить вихід, якщо пізніше я вийду з "висячого" і змушу його обробляти втрату вікна). Зворотні виклики GTK не мають нічого спільного з багатопроцесорною роботою.
Вал каже: Відновити Моніку
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.