Поиск по сайту:

Как завершить процессы Linux/не отвечающие приложения с помощью команды xkill


Как нам убить ресурс/процесс в Linux? Очевидно, мы находим PID ресурса и затем передаем PID команде уничтожения.

Говоря точнее, мы можем найти PID ресурса (скажем, терминала) как:


ps -A | grep -i terminal

6228 ?        00:00:00 gnome-terminal

В приведенном выше выводе число «6228» — это PID процесса (gnome-terminal). Используйте команду kill, чтобы завершить процесс, как показано ниже.


kill 6228

Команда kill отправляет сигнал процессу, чей PID передается вместе с командой.

В качестве альтернативы мы можем использовать команду pkill, которая убивает процесс на основе имени и других атрибутов процесса. Чтобы завершить процесс, скажем, имя которого терминал, нам нужно выполнить:


pkill terminal

Примечание. Длина имени процесса в pkill ограничена 15 символами.

pkill кажется более удобным, поскольку вы можете завершить процесс, не узнавая его PID. Но если вы хотите лучше контролировать свою систему, ничто не сравнится с командой «kill». Используя kill, вы сможете лучше понять, какой процесс вы убиваете.

Мы уже рассмотрели подробное руководство по командам kill, pkill и killall.

Для тех, кто использует X-сервер, есть еще один инструмент под названием xkill, который может завершить процесс из его X-окна, не передавая имя процесса или его PID.

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

Он поддерживает такие параметры, как подключение к определенному X-серверу (-display displayname) с использованием отображаемого номера, когда на хосте одновременно работает несколько X-серверов, и уничтожение всех клиентов (-all, не рекомендуется) с окнами верхнего уровня на экране, а также учитывать фрейм (-frame).

Чтобы получить список всех клиентов, которые вы можете запустить:


xlsclients
Пример вывода

'  ' /usr/lib/libreoffice/program/soffice
deb  gnome-shell
deb  Docky
deb  google-chrome-stable
deb  soffice
deb  gnome-settings-daemon
deb  gnome-terminal-server

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


xkill

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

Здесь необходимо упомянуть моменты:

  1. Этот инструмент работает только при работающем сервере X11, поскольку xkill является частью утилиты X11.
  2. Не путайте с закрытием и уничтожением ресурса. Убивая ресурс, вы можете ожидать, что он не завершится корректно.
  3. Это не замена утилиты kill.
Нужно ли мне заходить в командную строку Linux, чтобы вызвать xkill?

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

Вот как настроить сочетание клавиш в типичной среде рабочего стола gnome3.

Перейдите в Настройки –> Выбрать клавиатуру, нажмите + и добавьте имя и команду. Нажмите на новую запись и нажмите клавишу, которую вы хотите использовать в качестве комбинации клавиш быстрого доступа. Я сделал Ctrl+Alt+Shift+x.

В следующий раз, когда вы захотите уничтожить ресурс X, просто нажмите комбинацию клавиш (Ctrl+Alt+Shift+x), и вы заметите, что указатель мыши изменился на x. Нажмите на ресурс x, который хотите уничтожить, и все готово!