Como faço para combinar um ID de janela X com um id de processo pai no bash?

1

Eu tenho um script que manipula o windows usando wmctrl .

Funciona basicamente, mas há uma condição de corrida. Quando um programa arbitrário é iniciado, preciso determinar seu ID de janela X. A versão ingênua é basicamente

 wmctl -l | cut -d ' ' -f 1 >before

 do
     wmctl -l | cut -d ' ' -f 1 >after
 until diff before after reveals a new line

O script bash contendo a lógica acima conhece o PID do processo filho que foi lançado. O processo filho se bifurca, o neto cria um ID de janela X e a criança morre.

Eu tenho o PID da criança e o ID da janela X da janela do neto candidato. Eu não tenho os PIDs de nenhum processo intermediário.

Não consigo sincronizar a criação de janelas ou modificar o próprio programa filho, portanto, para evitar a condição de corrida, preciso verificar se o ID da janela candidato X é derivado do processo filho now-dead. Como faço isso?

    
por spraff 22.12.2016 / 13:15

0 respostas