Everything a process is given before it starts: the executable, one call per argument, the directory it runs in, its environment, and where its output goes.
Launch starts the process and answers the running launcher: read its output, wait for it, ask whether it is still up, and stop it or its whole tree.