Viele Installationen bestehen aus einer ausführbaren Datei, die ihrerseits weitere Unterprozesse startet, um die eigentliche Arbeit zu erldigen. Die gesamte Installation ist erst fertig, wenn alle Unterprozesse beendet sind.

Mit PKGShell muss man sich um dieses Szenario in der Regel nicht kümmern, da PKGShell standardmäßig auf alle gestarteten Prozesse unterhalb des ursprünglichen Prozesses wartet - auch wenn dieser frühzeitig terminiert.

Dies ist durch eine einfache Technik möglich: Ein System-Handle wird dem Unterprozess vererbt und dieser vererbt es wiederum unwissentlich an alle seine Unterprozesse. Das Handle bleibt jedoch aktiv, bis der letzte Unterprozess beendet ist. Das funktioniert fast immer prima - es sei denn, der Prozess schließt explizit seine geerbten Handles.

Wenn sie, ganz im Gegensatz, weder auf den Prozess noch auf seine Unterprozesse warten wollen, benutzen sie einfach den Command-Parameter .NoWait=1.