Обычно при запуске приложения в графической среде, когда я хочу закрыть его, я щелкаю X
в верхнем левом углу окна или перехожу на File > Close
.
Я хотел бы иногда закрывать эти программы удаленно через ssh из терминала, используя командную строку, теперь я использую kill
команду, но мне интересно, что она делает то же самое, что правильно выходит из приложения из самого себя.
От man kill
сигнала по умолчанию , как представляется, 15) SIGTERM, будет этот сигнал будет сказать приложение я пытаюсь закрыть , чтобы очистить, закрыть открытые файлы, сохранить вещи?
Есть ли лучший способ, если я хочу сделать это из терминала?
command-line
Майк
источник
источник
Ответы:
Типичный способ закрыть приложения корректно заключается в использовании
kill -TERM 1234
, где1234
это PID окна. Проблема, однако, заключается в том, что графические приложения предназначены для прослушивания определенного сигнала от самого X-сервера, а не для прослушиванияTERM
сигнала.Это означает, что вам потребуется какой-то агент между вами и X-сервером, чтобы сообщить, что вы хотите отправить соответствующий сигнал. Вы, конечно, можете написать программу на C, однако существует
wmctrl
программа (не удивительно написанная на C), которая делает именно это.Использование
wmctrl
просто:Он не установлен по умолчанию, поэтому получите его с
sudo apt-get install wmctrl
Существует много вариантов использования,
wmctrl
выходящих далеко за рамки простого закрытия окон, поэтому, пожалуйста, ознакомьтесь с другими моими ответами и ответами Якоба Влейма о том, где он использовался.источник
wmctrl -l
который перечислит все окна и даст числовой идентификатор в шестнадцатеричном виде в первом столбце. =)Minimize to tray on close
иwmctrl -c
будет просто закрыть окно, не само приложение, оно будет оставаться работает минимизировано в трей.Я думаю, что стоит добавить, что
wmctrl -xl
результаты будут такими:Где
x
запрашивает класс окна, чтобы быть в выводе. Часто это самый простой способ закрыть одну и ту же программу каждый раз. Затем мы можем просто предоставить класс окна при его закрытии:Этот пример закроет speedcrunch.
источник