If you use Tprocess, make sure it does not inherit handles, the launched process should run detached.
process.inherithandles := false; // all platforms
process.options := [poDetached]; // has only effect on Windows?, otherwise empty.
Inheriting handles may cause leaks to propagate, afaik also on Linux.
When the process is launched detached your launching application will not be affected, but the process needs to be killed explicitly if so desired, because otherwise the launched process will keep running even if you close the launching app.
But any leaks will stay in the launched application....
Remark: output/input redirection [poUsePipes] will still work if you use that.
Remark 2: in your case this may be the last resort, because normally you would
want to run it as a child process. But the above means your launching app is never affected memory wise.