Я хочу знать, на каком рабочем столе запущен данный процесс. Я могу получить это из окна ID с помощью wmctrl
. Я также могу выяснить, в каком процессе эмулятора терминала выполняется данный процесс, проследив родительскую родословную до терминального процесса.
Однако данный процесс терминала будет иметь несколько окон, распределенных по нескольким рабочим столам.
В эти дни я использую эмулятор терминала roxterm
, хотя и Konsole, и gnome-терминал похожи в этом отношении.
Есть ли способ запросить одно или несколько из этих приложений, чтобы узнать, в каком из их окон запущен данный процесс? Если это требует взлома gdb
, хорошо, взломать. Хотя что-то, что, вероятно, продолжит работать после обновления, вероятно, будет лучше :)
Я не совсем против отслеживания этих вещей при инициализации bash, но мне не хочется разбираться со всеми мрачными деталями, и, похоже, есть некоторые существенные крайние случаи, которые не будут работать с таким подходом. Хотя, может быть, кто-то уже понял это?
В качестве альтернативы, если есть другой эмулятор терминала, который предоставляет более богатый интерфейс для доступа к таким интроспективным данным, это было бы полезно знать.
Я мог бы обойти это, запустив каждое окно в отдельном процессе, но компромиссы как с точки зрения использования памяти, так и универсальности (например, перемещение вкладки из одного окна в другое), вероятно, неприемлемы. В основном это использование памяти.