Принудительно закрываем зависшую программу в linux

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

Обычно в ubuntu если несколько раз быстро нажать на крестик зависшей программы, то система сама предложит убить процесс. Но я столкнулся с 2-мя случаями, когда это не помогает:

1. Апплет radio-tray. Иногда он перестаёт реагировать на большинство нажатий, включая кнопку выход. Но «О программе» открывает. Этого достаточно для скрипта.

2. 1 раз из 20 после выхода из teeworlds(я играю на втором x сервере) кроме черного экрана ничего не видно. Приходиться заходить в консоль (Cntrl+Alt+F1) и через htop убивать терминал с игрой.

Поэтому я и решил накатать простенький скрипт.

Для его работы нам понадобится установленный пакет xdotool. Он есть в репозиториях практически всех дистрибутивов, а значит установить его будет не проблема. Например в ubuntu это команда:

sudo apt-get install xdotool

Затем создаём файл для скрипта, желательно в специальной папке:

mkdir ~/bin
gedit ~/bin/kill

И вставляем следующий текст:

#!/bin/bash
gw=`xdotool getactivewindow`
gp=`xdotool getwindowpid $gw`
kill -9 $gp

Сохраняем и делаем файл исполняемым:

chmod +x ~/bin/kill

Осталось только привязать скрипт к клавише на клавиатуре.

Теперь достаточно нажать забитую клавишу и активное окно умрёт.

Поделись статьёй с друзьями

Или просто поиграйся с кнопочками

4 комментария на «Принудительно закрываем зависшую программу в linux»

  1. pet:

    А за автоматизацию спасибо! :)
    *Кстати в System Monitor есть варианты: End Process, Kill Process. В чем разница?

  2. alex:

    Спасибо, на самом деле очень полезная «штука».

  3. […] на клавишу клавиатуры. Как это сделать можно почитать здесь, внизу […]

Добавить комментарий