Я знаю, что мы можем получить 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, текущий вопрос) может потребоваться.