Selecting "link" or "copy" is done automatically by checking if UE is running from an installed place or if it is a dev/p4 stream place, you can override this with the option -ZenAutoLaunchInstallMode.
The ZenAutoLaunchInstallMode defaults to "auto" where it tries to detect if it is an installed engine or not. "link" forces the use of a link file and "copy" forces the copy-install option which is the legacy behavior.
Additional fixes:
FMacSystemWideCriticalSection which could fail to aquire the critical section causing launch to fail now uses flock in the same manner as FUnixSystemWideCriticalSection which resolves the issues
When checking if processes are running on Unix/Mac we now detect zombie processes properly
#jira UE-224517
#rb zack.neyland, Zousar.Shaker
[CL 36764363 by dan engelbrecht in 5.5 branch]
Remove the restoring of sponsored processes when trying to recover - we should never touch them unless we are adding a process ourselves.
Refactored out ZenServerState and ZenNamedEvent into separate file so we don't have low-level zenserver specific code in ZenServerInterface.cpp.
#jira UE-224531
#rb Zousar.Shaker
[CL 36757557 by dan engelbrecht in 5.5 branch]
This avoid a race condition where multiple threads would try to start recovery at the same time.
#jira UE-216389
#rb zousar.shaker
[CL 34277375 by dan engelbrecht in ue5-main branch]
#ushell-cherrypick of 32395474 by dan.engelbrecht
#rb Devin.Doucette
#jira UE-210439
[FYI] tim.doerries, Zousar.Shaker, Stefan.Boberg
[CL 32452554 by dan engelbrecht in ue5-main branch]
If a pid can not be found when finding a matching desired/effective port, keep looking if any other state has a matching port.
Hardened and added logging to NativeIsProcessRunning.
Run of Low Level Tests in Main here: https://horde.devtools.epicgames.com/job/65e81c5d156d6df40d304906
#jira UE-207039
#rb Zousar.Shaker
#ushell-cherrypick of 31938454 by swarm
[CL 32068216 by zousar shaker in ue5-main branch]
Fixes warning "Warning: [CookWorker 2]: Skipping subprocess environment variable UE-ZenSubprocessDataPath=d:/build/++Fortnite/Sync/ZenData due to an invalid path" caused by a race condition between multiple cook workers.
See https://horde.devtools.epicgames.com/log/65dc47bbdd128eaa49c6cc13?lineindex=90207
#jira UE-208562
#rb Zousar.Shaker
[CL 31941714 by dan engelbrecht in ue5-main branch]