Como posso obter o pid de uma janela que está abrindo no momento?

Como posso obter o pid de uma janela que está abrindo no momento?

Eu sei que podemos obter o pid da janela atual com xdotoolo comando:

xdotool getactivewindow

No entanto, isso ajuda apenas nas janelas abertas no momento... Gostaria de encontrar uma maneira de obter o pid de uma janela que estou abrindo no momento, algo como o seguinte:

command-to-get-pid-of-process-that-is-opening-now "$(firefox https://www.google.com)"

Eu sei que poderia usar sleepe esperar um tempo aleatório para o processo abrir e depois usar o xdotool getactivewindow. Mas isso não parece uma solução ideal. Como posso obter o pid de uma janela que estou abrindo?

Responder1

firefox https://www.google.com & MYPID=$!

armazenará o pid do processo que você acabou de iniciar em uma variável MYPID.

No entanto, não prenda a respiração.

Novas janelas não estão necessariamente associadas ao comando que você executou. No caso do Firefox, o comando pode eventualmente se comunicar com uma instância já em execução. O processo para o qual você determinou o pid desaparecerá em breve.

Você pode querer, em uma nova pergunta, perguntar sobre o que você realmente deseja alcançar (Problema X). Outras abordagens além de encontrar o pid de uma janela que você está prestes a abrir (Problema Y, a pergunta atual) pode ser necessária.

informação relacionada