Ugye lsof-al sem vagyunk kisegítve, mert nem tudható, hogy mire kell várakozni. Se PID, se parancs név.
Ugye xdg-open forkol, de nem subshell lesz. Arra is gondoltam, hogy begyűjtön az xdg-open előtti összes PID-et, majd a parancs utánival összehasonlítom, így megkaphatnám, hogy milyen új PID-ek keletkeztek. De ez hülyeség, mert közben más is indíthat új folyamatot.
Végül leimplementáltam az xdg-open-t és átírtam Ruby-ra az egészet, lásd a bekezdést.