Как закрыть приложение от терминала тот же путь как выход из него правильно

Обычно, когда запущенное приложение в графической среде, когда я хочу закрыть его, я нажимаю X в верхнем левом углу окна или переходят в File > Close.

Я хотел бы иногда закрыть эти программы удаленно по ssh из терминальной командной строки использования, теперь я использую kill управляйте, но интересно он, это делает то же как выход из приложения правильно от себя.

От man kill сигнал по умолчанию, кажется, 15), SIGTERM, этот сигнал собирается сказать приложению, что я пытаюсь близко к уборке, близко открытые файлы, сохранить материал?

Существует ли лучший путь, если я хочу сделать это от терминала?

9
задан 9 June 2016 в 09:46

2 ответа

Типичный способ закрыть приложение корректно состоит в том, чтобы использовать kill -TERM 1234 , где 1234 PID окна. Проблема, однако, состоит в том, что графические приложения разработаны для прислушиваний к определенному сигналу от самого X-сервера, не прислушавшись TERM сигнал.

Это означает необходимость в некотором агенте, промежуточном Вы и X-сервер для передачи этого, Вы хотите отправить соответствующий сигнал. Можно, конечно, записать программу C, однако там уже существует wmctrl программа (не удивительно записанный в C), который делает точно это.

Использование wmctrl просто:

wmctrl -c :SELECT: # close window that will be selected with pointer
wmctrl -c :ACTIVE: # close currently active window
wmctrl -ic <numeric id> # close window with specific id in hex

Это не установлено по умолчанию, поэтому получите его с sudo apt-get install wmctrl

Существует много использования для wmctrl далеко вне просто закрытия окон, поэтому см. больше моих ответов и Jacob Vlijm для примеров сценариев, где оно использовалось

9
ответ дан 23 November 2019 в 04:58

Я думаю, что стоит добавить это wmctrl -xl произведет результаты как это:

0x03000001 -1 google-chrome.google-chrome  dcentore-pc Rybak - Google Play Music - Google Chrome
0x04600006  0 speedcrunch.Speedcrunch  dcentore-pc SpeedCrunch

Где x запрашивает класс окна быть в выводе. Это часто - самый легкий способ закрыть ту же программу каждый раз. Затем мы можем просто предоставить класс окна при закрытии его:

wmctrl -xc speedcrunch.Speedcrunch

Этот пример закроет speedcrunch.

3
ответ дан 23 November 2019 в 04:58

Другие вопросы по тегам:

Похожие вопросы: