Как узнать pid окна, которое в данный момент открыто?

Как узнать pid окна, которое в данный момент открыто?

Я знаю, что мы можем получить pid текущего окна с помощью xdotoolкоманды:

xdotool getactivewindow

Однако это помогает только с текущими открытыми окнами... Я хотел бы найти способ получить pid окна, которое я в данный момент открываю, что-то вроде следующего:

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

Я знаю, что я мог бы использовать sleepи подождать случайное время, пока процесс откроется, а затем использовать xdotool getactivewindow. Но это не выглядит идеальным решением. Как мне получить pid окна, которое я только что открыл?

решение1

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

сохранит pid только что запущенного вами процесса в переменной MYPID.

Однако не задерживайте дыхание.

Новые окна не обязательно связаны с запущенной вами командой. В случае Firefox команда может в конечном итоге связаться с уже запущенным экземпляром. Процесс, для которого вы определили pid, вскоре исчезнет.

Возможно, в новом вопросе вы захотите спросить о том, чего вы действительно хотите достичь (Проблема X). Другие подходы, помимо поиска pid окна, которое вы собираетесь запустить (Проблема Y, текущий вопрос) может потребоваться.

Связанный контент