The .NET build contains a number of long lived server processes: msbuild nodes, razor and roslyn. A requirement of the .NET SDK is for customers to be able to reliably shut down all servers created during any build. This is important for shutting down a build operation and ensuring that no files remain locked on disk.
This challenging because there is no easy answer to discovering which processes are build servers:
- These are primarily .NET SDK process which means they all share the same process name:
dotnet
- These processes do not have a strict parent / child relationship with build commands. Several, like roslyn, live past the msbuild nodes that created them.