Запускаю через скрипт приложение
(appname 2>&1 > /dev/null) & echo $!
- Читаю результат
$!
получивPID
отпочковавшейся дочки - Запускаю
wmctrl -lp
ищу в строкеPID
и забираю соответствующийWID
- Всё, я довольный, могу через
WID
манипулировать окном и пришибать процесс черезPID
точно зная что есть активная параPID
/WID
и я не пришибу случайно что-то иное.
Всё работает. Но с некоторыми приложениями например glxgears
беда. PID
я его получаю, а вот WID
найти не могу, да я могу wmctrl
без параметров запустить, мышкой кликнуть на окошечко и получить WID
, но это не то, не получается зная лишь PID
получить WID
. С большинством приложений проблем нет, а тут уже не знаю где искать. Сейчас ситуация такая что я запускаю приложеньку, жду несколько секунд пытаясь получить WID
окна, если не получилось, грохаю процесс, ну и типа фиг с ним, не судьба :(
Не сообщает _NET_WM_PID
оно, жопка такая. Выхода нет? Ключ поверни и по-ле-те-ли И однозначно не определить?
Варианты поиска по заголовкам окон и по содержанию командной строки не прокатят, заголовка может не быть вовсе и могут быть много окон с пустыми заголовками. Блин :(
Решение: