Как завершить процессы 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 не гарантирует, что закрытие соединения приведет к его успешному завершению/прерванию. Большая часть приложения будет уничтожена, когда связь с сервером будет закрыта. Однако некоторые из них все еще могут работать.
Здесь необходимо упомянуть моменты:
- Этот инструмент работает только при работающем сервере X11, поскольку xkill является частью утилиты X11.
- Не путайте с закрытием и уничтожением ресурса. Убивая ресурс, вы можете ожидать, что он не завершится корректно.
- Это не замена утилиты kill.
Нужно ли мне заходить в командную строку Linux, чтобы вызвать xkill?
Нет, вам не нужно запускать xkill из командной строки Linux. Вы можете установить сочетание клавиш и вызвать xkill, просто нажав ту же комбинацию клавиш.
Вот как настроить сочетание клавиш в типичной среде рабочего стола gnome3.
Перейдите в Настройки –> Выбрать клавиатуру, нажмите + и добавьте имя и команду. Нажмите на новую запись и нажмите клавишу, которую вы хотите использовать в качестве комбинации клавиш быстрого доступа. Я сделал Ctrl+Alt+Shift+x.
В следующий раз, когда вы захотите уничтожить ресурс X, просто нажмите комбинацию клавиш (Ctrl+Alt+Shift+x), и вы заметите, что указатель мыши изменился на x. Нажмите на ресурс x, который хотите уничтожить, и все готово!