Ubuntu закрыть зависшее приложение

Обновлено: 04.07.2024

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

Почему зависают программы и приложения?

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

Некачественное программное обеспечение (ПО), которое не было должным образом протестировано разработчиками. А также ПО сомнительного происхождения также являются частой причиной зависаний.

Аппаратная составляющая также оказывает существенное влияние на работу ОС. Например достаточный объём оперативной памяти, стабильные частоты, на которых она работает, высокоскоростная дисковая подсистема. Всё это является важным фактором, существенно снижающим вероятность зависаний.

Системы на основе Linux заслуженно и неоспоримо считаются наиболее устойчивыми к различного рода сбойным ситуациям. Ядро этих систем действительно, работает очень стабильно и способно «переваривать» нагрузки в круглосуточном режиме на протяжение очень длительного времени. Системы Windows такими показателями похвастаться не могут. Именно поэтому, управление самыми высоконагруженными серверами, где критически важна надёжная работа системы. Доверяют именно Unix/Linux.

Но, как бы ни была надёжна Linux, сбои и зависания происходят и в этой ОС. В подавляющем большинстве случаев они связаны либо с устаревшей, маломощной аппаратной составляющей, либо с нестабильным ПО. В последнем случае это касается по большей части настольных компьютеров обычный пользователей. Где используются различные графические оболочки. Что и говорить, графическая подсистема — одна из наиболее уязвимых для сбоев в ОС Linux.

Завершение зависших приложений в командной оболочке

Прежде всего необходимо знать и понимать, каким образом идентифицировать зависший процесс. Ну а дальше попытаться его завершить принудительно.
Каждому процессу в системе соответствует свой уникальный идентификатор (PID). При помощи которого система им управляет, в частности может завершить. Самым простым способом узнать PID процесса является команда pidof:

В данном случае в качестве аргумента указывается имя процесса. Для примера используется утилита psensor. Считывающая показания, предоставляемые различными провайдерами для системных датчиков: lm-sensors, hddtemp, udisks2 и т. д. Если, к примеру, замечено, что psensor не обновляет показания датчиков, т. е. предполагается, что эта утилита зависла. То завершить её можно командой kill, передав ей соответствующий PID:

Эта команда предназначена для отправки сигналов управления процессам. По-умолчанию завершает процесс. Для завершения процессов по их имени существует команда killall:

Однако, использование kill по идентификаторам процессов более корректно. К тому же команда kill более предпочтительна для крепко зависших процессов. И обладает более гибкими возможностями.

Вообще в таких случаях может быть проблематично использовать или запустить командную консоль. Поскольку она также может зависнуть. Тогда можно попытаться переключиться на параллельный сеанс комбинацией клавиш <Ctrl+Alt+FN>. Где N – номер функциональных клавиш от 1 до 12, например F1, F2, . . . F12. И уже оттуда продолжить работу с процессами.

Зависание графической оболочки в Linux

Как уже было отмечено выше, если в системе установлена и работает какая-либо из графических оболочек (GNOME, KDE, Xfce и т. д.), то это лишний повод увидеть перед собой зависшее окно какого-либо приложения, либо даже целиком некликабельный рабочий стол. В таком случае удобно воспользоваться графическим менеджером процессов и управлять ими визуально. Используя элементы интерфейса и контекстное меню процесса.


Но бывает также и так, когда рабочий стол не реагирует ни на клики мыши, ни на привязанные к нему клавиатурные комбинации. В этом случае остаётся задействовать виртуальные терминалы. Переключившись на один из них, как это указано в предыдущей главе по нажатию сочетаний клавиш <Ctrl+Alt+FN>. Стоит отметить, что при переключении на такой терминал необходимо сначала авторизоваться в системе через него. После этого можно попытаться перезапустить графическую оболочку и/или X-сервер, например для Ubuntu:

Здесь lightdm или ssdm зависит от того, какая графическая оболочка используется. В последних версиях дистрибутивов Ubuntu в основном используется композитный менеджер ssdm.

Нехватка памяти и полное зависание системы

В некоторых случаях зависание процесса может быть вызвано нехваткой памяти. Особенно когда сам процесс потребляет её слишком много, т. е. Как говорят, «сильно течёт». Иногда это не очевидно, если такой процесс выполняется в фоне, а пользователь непосредственно с ним не работает. Такие случаи выявляются по первичным признакам в виде общей «заторможенности» всей системы. Когда зависший процесс отобрал большую часть ресурса памяти. В данном случае нужно выявить такой процесс, воспользовавшись командой ps. И отсортировав все процессы по количеству используемой памяти:

Будет выведена таблица, среди столбцов которой есть столбец «%MEM», указывающий количество памяти в процентном соотношении от доступной в системе и используемой соответствующим процессом, запущенным командой, указанной в столбце «COMMAND».
К примеру, если это веб-браузер Firefox, то у него может быть много связанных с ним процессов:

Их можно разом завершить:

Но может и случиться так, что даже Linux-система может зависнуть наглухо, не реагируя ни на что. В таких случаях, как правило, само ядро продолжает работать и ему можно отдавать команды, в том числе и через клавиатуру. Таким образом, можно попытаться более-менее корректно, с наименьшими потерями выполнить ручную поэтапную перезагрузку, передавая ядру соответствующие команды через клавиатурные сочетания. Эти команды следует отдавать, нажимая следующие клавиши через каждые 3-4 секунды, при этом удерживая сочетание клавиш :

На этапах 2 и 3 стоит объективно оценивать время работы команды. Если процессов запущенно много, то и времени на их завершение и уничтожение может также потребоваться несколько больше, чем 3-4 секунды.

Заключение

В заключение, стоит отметить, что хотя в системах Linux далеко не так часто случаются вообще какие-либо зависания. Однако всё же необходимость правильно и быстро вывести систему из нештатного состояния может возникнуть в любой момент. Такими состояниями являются рассмотренные в данной статье как зависания отдельных процессов, так и целых подсистем, например графической. Также был рассмотрен вариант с ручной перезагрузкой системы в случае её полного зависания.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

7 способов "убить" зависшее приложение в Linux

Если у вас возникают такие проблемы, вот несколько способов, как принудительно завершить программу в Linux.

1. Завершить программу в Linux, просто нажав на "X"


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

2. Воспользуйтесь системным монитором, чтобы "убить" процесс Linux


Следующий вариант - открыть утилиту System Monitor вашей операционной системы Linux. Обычно она находится в меню "Системные инструменты" и отображает список запущенных процессов на вкладке "Процессы".

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

  • Остановить: приостанавливает процесс, позволяя продолжить его позже. Не будет работать в большинстве случаев.
  • Завершить: правильный способ закрыть процесс, он безопасно завершит работу приложения, вместе с ним удаляя временные файлы.
  • Убить: вариант на крайний случай и его рекомендуется применять только в случае сбоя.

Лучше всего использовать их по порядку. Однако, если приложение регулярно зависает, можно использовать вариант, в котором вы точно уверены.

3. Принудительное уничтожение процесса Linux с помощью xkill

Другой вариант - использование команды xkill в терминале. Это инструмент принудительного уничтожения процесса, который предустановлен в Ubuntu, но его можно также установить через терминал в других дистрибутивах, если необходимо. xkill позволит закрыть любой процесс. Установить его можно с помощью следующей команды:

Как только установите, наберите:

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

Если невозможно закрыть зависшее приложение одним из этих методов, то решение может быть в терминале Linux.

4. Используйте команду "kill"

Если ни один из вышеперечисленных методов не помог и приложение до сих пор не отвечает, нажмите Ctrl + Alt + T, чтобы открыть терминал.

Есть несколько команд, которые должны помочь закрыть ваше приложение. Более того, их можно использовать как на вашем компьютере, так и подключившись удаленно через SSH.

Команда kill может быть использована только с указанием идентификатора процесса. Сначала выясним его:

В результате вы увидите ID нужного процесса. Далее используем команду:

Возможно, вам понадобятся системные права для использования программы, тогда используйте sudo.


5. Используйте команды "pgrep" и "pkill"

Что, если вы не смогли найти идентификатор процесса. Здесь вам поможет команда pkill.

Кроме того, можно использовать команду pgrep, чтобы найти идентификатор процесса:

После этого используйте команду pkill с ID процесса.


Как и в случае команды kill, процесс должен завершиться в течение 5 секунд.

6. Уничтожить все экземпляры процесса с помощью "killall"

Не повезло с kill или pkill? Пришло время использовать ядерную опцию: killall.

К счастью, она не так разрушительна, какой могла бы быть. Команда killall завершит все экземпляры указанной программы. Таким образом, вместо того, чтобы убивать одно окно Firefox, данная команда завершит их все:

Все, что вам нужно, это имя процесса и команда killall (возможно, с sudo, если этого требует ваша система).

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

7. Создайте комбинацию клавиш

Хотите сэкономить время на закрытие не отвечающего программного обеспечения? Наилучшим вариантом является создание сочетания клавиш. Это даст вам возможность немедленно закрыть приложение, но для этого потребуется xkill.

В Ubuntu откройте "Настройки">"Клавиатура" и нажмите "Комбинации клавиш". Выберите Дополнительные комбинации, затем +, чтобы создать новую. Введите "xkill" для названия, затем нажмите "Применить". Это вернет вас к списку комбинаций - выберите нужную, затем нажмите необходимую комбинацию клавиш, которую вы будете использовать для ее вызова.


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

Избегайте зависаний программ: обновите свое оборудование

Зависающие программы постоянно вызывают проблемы? Возможно, пора немного обновить ваш компьютер.

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

Итак, в следующий раз, когда приложение или утилита Linux зависнет и перестанет отвечать на запросы, все, что вам нужно сделать, это применить одно из следующих решений:

  1. Завершить программу в Linux, просто нажав на "X".
  2. Воспользуйтесь системным монитором, чтобы "убить" процесс Linux.
  3. Принудительное уничтожение процесса Linux с помощью xkill.
  4. Используйте команду "kill".
  5. Используйте команды "pgrep" и "pkill".
  6. Уничтожить все экземпляры процесса с помощью "killall".
  7. Создайте сочетание клавиш.

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


Программное обеспечение в Linux достаточно надежно, чтобы работать без проблем, но иногда, даже самые лучшие приложения могут зависнуть. Вместо того, чтобы ждать их сбоя, вы можете убить эти не отвечающие программы. На самом деле, существует так много способов убить программы для Linux, что вы можете оказаться избалованными выбором!

Если у вас возникают проблемы с приложением в Linux, вот несколько способов как её решить.

1. Убейте программу Linux, нажав «X»

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

2. Используйте системный монитор, чтобы убить процесс в Linux

Чтобы закрыть не отвечающее приложение, просто выберите его и щелкните правой кнопкой мыши. Затем у вас есть три варианта:

  • Остановить процесс: это приостанавливает процесс, позволяя продолжить его позже. Это не будет работать в большинстве случаев.
  • Завершение процесса: правильный способ закрыть процесс, это безопасно завершит работу приложения, удаляя временные файлы в пути.
  • Процесс уничтожения: это крайний вариант, и его следует использовать только в случае сбоя конечного процесса.

Лучше использовать их по порядку. Однако, если приложение регулярно зависает, вы можете использовать команду, которая, как вы знаете, работает.

3. Принудительно уничтожать процессы в Linux с помощью xkill

sudo apt install xorg-xkill

Как только это будет сделано, запустите xkill, просто набрав

Ваш указатель мыши будет отображать крест (или череп). Щелкните левой кнопкой мыши на приложении-нарушителе, чтобы закрыть его.

4. Используйте команду «kill»

Если ваше приложение не отвечает, а приведенные выше предложения не работают (графический интерфейс может не отвечать), нажмите Ctrl+Alt+T, чтобы открыть Терминал.

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

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

ps aux | grep [process name]

В результате отобразится идентификатор процесса. Это может быть использовано следующим образом:

kill [process ID]

Обратите внимание, что вам может понадобиться добавить команду с помощью sudo.

5. Используйте «pgrep» и «pkill»

Что если вы не знаете или не можете найти идентификатор процесса? Вот тут и появляется команда pkill. Вместо идентификатора процесса просто используйте pkill вместе с именем процесса:

pkill [process name]

Кроме того, вы можете использовать команду pgrep, чтобы найти идентификатор процесса:

pgrep [process name]

… И после этого используйте pkill с идентификатором процесса.

pkill [process ID]

Как и в случае команды kill, процесс должен завершиться в течение 5 секунд.

6. Убить всё с помощью «killall»

Не повезло с kill или pkill? Пришло время использовать ядерную опцию: killall.

К счастью, это не так разрушительно, как могло бы быть. Команда killall завершит работу всех экземпляров указанной программы. Таким образом, вместо того, чтобы убивать одно окно Firefox, следующая команда завершит их все:

Все, что вам нужно, это имя процесса и команда killall (возможно, с sudo, если этого требует ваша система).

killall [process name]

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

7. Создайте комбинацию клавиш Force-Kill

Хотите сэкономить время на закрытие не отвечающего программного обеспечения? Наилучшим вариантом является создание сочетания клавиш. Это даст вам немедленную возможность закрыть приложение, но для этого потребуется xkill.

В Ubuntu откройте Параметры > Устройства > Клавиатура и пролистайте список Комбинации клавиш в самый низ, где вы увидите «+». Нажимаем на «+», чтобы создать новый ярлык. В поля Имя и Команда введите «xkill», затем нажмите кнопку Установить комбинацию клавиш и введите нужную вам комбинацию и нажмите кнопку Добавить. Готово.

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

Избегайте не отвечающего программного обеспечения: обновите свое оборудование

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

Итак, в следующий раз, когда приложение или утилита Linux зависнет и перестанет отвечать на запросы, все, что вам нужно сделать, это применить одно из следующих решений:

  1. Нажмите X в углу.
  2. Используйте системный монитор.
  3. Используйте приложение xkill.
  4. Используйте команду kill.
  5. Закройте приложения с помощью pkill.
  6. Используйте killall, чтобы закрыть программное обеспечение.
  7. Создайте сочетание клавиш.

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



Иногда бывают случаи в любой системе, когда какая-то программа "зависла", не отвечает на требования пользователя о её закрытии. В Linux/Ubuntu есть несколько вариантов завершить такую программу принудительно.

За принудительное завершение визуального процесса, а попросту говоря "зависшего" окна программы отвечает терминальная команда:

Выполните её и образовавшимся крестиком вместо курсора кликните на окне, оно тут же закроется (пример):


Назначить "горячую клавишу" с командой xkill. Откройте Параметры системы ->Клавиатура ->Комбинации клавиш ->Дополнительные комбинации и нажмите на знак плюс (+), что находится в низу (указано стрелкой):


Должно открыться окно под названием Дополнительные комбинации. Скопируйте/вставьте в поле Название - Завершить принудительно, а в поле Команда - xkill и нажмите Применить:


Теперь в окне с Дополнительными комбинациями должна появиться строка Завершить принудительно - Выключено:


Кликните на слове Выключено и нажмите одну из клавиш на клавиатуре для назначения и выполнения команды xkill. Лучше всего для этой цели подойдёт одна из клавиш (на ваш выбор) F8, F9 и т.п., которые менее задействованы:


Теперь после нажатия назначенной "горячей клавиши" и образовавшимся крестиком вместо курсора вы можете закрыть "зависшую" программу (окно).

Создать кнопку "убийцу" на панели Unity - Завершить принудительно.

Для создания данной кнопки, необходимо выполнить следующие команды в терминале:

mv Force_Quit.desktop

Затем откройте меню Даш, введите с поиске force quit и перетащите значок на панель:


Теперь при помощи этого значка можно "убивать" "зависшие" окна программ. Клик на значок и появившимся крестиком вместо курсора закрыть "зависшую" программу (окно).

Читайте также: